Terraform Provider (v0.3.1)
The released LimeLink Terraform provider is hellovelop/limelink version 0.3.1. These claims were checked against the v0.3.1 release; consult the provider's generated documentation for exact, release-specific schemas.
Install
terraform {
required_providers {
limelink = {
source = "hellovelop/limelink"
version = "0.3.1"
}
}
}
provider "limelink" {}
Production https://api.limelink.org is the default API origin. The recognized development origin, https://api.dev.limelink.org, is opt-in through api_url.
Authentication and Ownership
An explicit sensitive api_key takes precedence. Do not place an api_key literal in Terraform configuration; prefer protected environment or secret-injection mechanisms. Otherwise the provider reads the environment variable named by api_key_env_var, which defaults to LIMELINK_API_KEY.
export LIMELINK_API_KEY="your_organization_api_key"
terraform plan
If a custom environment variable is explicitly selected but missing or blank, configuration fails without falling back to LIMELINK_API_KEY. Blank explicit keys, unknown values, and invalid environment-variable names also fail configuration.
Every provider configuration introspects the current credential through GET /api/v2/api-credentials/current. The provider derives the Organization and granted scopes from that credential; users do not configure organization_id. Each provider alias independently owns one credential-derived Organization context, so use aliases backed by different credentials or environment variables for multiple Organizations.
Supported Surface
Version 0.3.1 supports Project, Application, and Custom Domain managed resources. Link is intentionally read-only through a UUID lookup data source.
| Domain | Resource | Data source |
|---|---|---|
| Project | limelink_project | limelink_project |
| Application | limelink_application | limelink_application |
| Custom Domain | limelink_custom_domain | limelink_custom_domain |
| Link | Not supported as a managed resource | limelink_link |
Released data sources are UUID lookups, not list or search operations. Project, Application, and Custom Domain resources support UUID-only Terraform import. Links are created and updated through the LimeLink console or API, then inspected from Terraform with data.limelink_link when needed.
Minimal Examples
Manage a Project and its Project-owned landing message:
resource "limelink_project" "example" {
name = "Example Project"
default_hookup_msg = "Open this content in the app"
}
Manage one iOS Application and a Custom Domain:
resource "limelink_application" "ios" {
project_id = limelink_project.example.id
app_type = "IOS"
apple_info = {
app_name = "Example iOS"
app_scheme = "example"
bundle_id = "com.example.app"
app_id_prefix = "ABCDE12345"
}
}
resource "limelink_custom_domain" "example" {
project_id = limelink_project.example.id
hostname = "go.example.com"
}
Inspect—but do not manage—an existing Link:
data "limelink_link" "example" {
id = "66666666-6666-4666-8666-666666666666"
}
Use the generated provider documentation for the complete schemas and import examples.
Required Scopes
| Domain | Resource scopes | Data-source scope |
|---|---|---|
| Project | projects:read, projects:write | projects:read |
| Application | applications:read, applications:write | applications:read |
| Custom Domain | domains:read, domains:write | domains:read |
| Link | Not applicable | links:read |
Scope checks occur during resource or data-source configuration before the operation. Grant only the scopes required by the configuration.
Plan, Apply, and Import Safety
- Keep credentials in a secret manager or protected environment configuration.
- Never commit credentials or expose them in state snapshots, saved plans, logs, prompts, screenshots, browsers, or mobile clients.
- Review the target credential-derived Organization, resource ownership, and destructive actions in a saved plan before applying.
- Import each existing resource by its UUID only; do not construct composite Organization or Project import IDs.
- Confirm exact arguments, computed attributes, lifecycle behavior, and import commands in the generated provider documentation rather than inferring fields from API payloads or this overview.
limelink_projectmanagesnameand optionaldefault_hookup_msg; Project logo and Skin theme are not Terraform-managed fields.limelink_custom_domainstores only the Custom Domain UUID,project_id,hostname, and API-reportedcname_target; lifecycle, SSL, validation-record, retry, error, and timestamp details remain API observations.data.limelink_linkcan persist destination URLs, request URIs, schemes, preview images, generated URLs, routing metadata, and timestamps in Terraform state. Do not place credentials, tokens, or private query data in Link fields.
Authoritative References
- Provider registry
0.3.1 - Generated provider documentation
0.3.1 - Source repository
- Tagged
v0.3.1source v0.3.1release
Terraform is separate from the MCP Server: provider resources and data sources are not MCP tools, and the two integrations use different configuration models.