limelink

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.

DomainResourceData source
Projectlimelink_projectlimelink_project
Applicationlimelink_applicationlimelink_application
Custom Domainlimelink_custom_domainlimelink_custom_domain
LinkNot supported as a managed resourcelimelink_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

DomainResource scopesData-source scope
Projectprojects:read, projects:writeprojects:read
Applicationapplications:read, applications:writeapplications:read
Custom Domaindomains:read, domains:writedomains:read
LinkNot applicablelinks: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_project manages name and optional default_hookup_msg; Project logo and Skin theme are not Terraform-managed fields.
  • limelink_custom_domain stores only the Custom Domain UUID, project_id, hostname, and API-reported cname_target; lifecycle, SSL, validation-record, retry, error, and timestamp details remain API observations.
  • data.limelink_link can 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

Terraform is separate from the MCP Server: provider resources and data sources are not MCP tools, and the two integrations use different configuration models.