Skip to content

overlane api-key create

Create a team API key; the secret is shown once

Updated View as MarkdownOpen in ChatGPTOpen in Claude

Creates an API key for the team. A key carries scopes (read, or read and write), may be limited to one project, expires (90 days by default, one year at most) and may carry its own calls-per-minute cap under the plan limit. A key acts as an agent for the member who made it and never holds more than that member. Creating a key is in the secrets autonomy class: an agent needs an independent approval first (run it, read the approval it names, then retry with OVERLANE_APPROVAL set). Use the key as Authorization: Bearer \<key\>.

Usage

overlane api-key create [--service URL] [--team TENANT_ID] --label TEXT [--scope read|write] [--project PROJECT_ID] [--ttl-days DAYS] [--rate-limit N] [--dry-run]

Flags

Flag Type Required Default Description
--service string no The service address (default: OVERLANE_SERVICE_URL, then the project’s binding, then the hosted service)
--team string no The team (tenant) to act on (default: the one your token belongs to)
--label string yes What the key is for, such as ci-nightly
--scope one of read, write no read read, or write (which includes read)
--project string no Limit the key to one project
--ttl-days string no 90 Lifetime in days, 1 to 365
--rate-limit string no Calls per minute this key may make (the plan limit also applies)
--dry-run boolean no Print the requests and file changes this command would make, then stop. Needs no credentials.

Examples

overlane api-key create --label ci-nightly --scope read
overlane api-key create --label deploy --scope write --project proj-1 --ttl-days 30 --rate-limit 120
overlane api-key create --label ci --dry-run

Behavior

  • Effect: write (changes local or hosted state).
  • Needs credentials: yes. Uses the network: yes.
  • Supports --dry-run: yes. Accepts --force: no.
  • Machine-readable description: overlane schema api-key create.

Result

With --json (the default when stdout is not a terminal) the command prints this JSON Schema’s shape on stdout.

{
  "anyOf": [
    {
      "type": "object",
      "properties": {
        "tenantId": {
          "type": "string"
        },
        "key": {
          "type": "object",
          "properties": {
            "keyId": {
              "type": "string"
            },
            "label": {
              "type": "string"
            },
            "prefix": {
              "type": "string"
            },
            "scopes": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "project": {
              "type": "string"
            },
            "rateLimitPerMinute": {
              "type": "number"
            },
            "expiresAt": {
              "type": "string"
            },
            "lastUsedAt": {
              "type": "string"
            },
            "revokedAt": {
              "type": "string"
            },
            "rotatedFrom": {
              "type": "string"
            }
          },
          "required": [
            "keyId",
            "label",
            "prefix",
            "scopes",
            "expiresAt"
          ],
          "additionalProperties": false
        },
        "secret": {
          "type": "string"
        },
        "next": {
          "type": "string"
        }
      },
      "required": [
        "tenantId",
        "key",
        "secret",
        "next"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "dryRun": {
          "type": "boolean",
          "const": true
        },
        "service": {
          "type": "string"
        },
        "requests": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "method": {
                "type": "string"
              },
              "path": {
                "type": "string"
              },
              "body": {},
              "note": {
                "type": "string"
              }
            },
            "required": [
              "method",
              "path"
            ],
            "additionalProperties": false
          }
        },
        "commands": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "writes": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string"
              },
              "action": {
                "type": "string",
                "enum": [
                  "write",
                  "append",
                  "delete"
                ]
              },
              "description": {
                "type": "string"
              }
            },
            "required": [
              "path",
              "action",
              "description"
            ],
            "additionalProperties": false
          }
        },
        "notes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "dryRun",
        "requests",
        "commands",
        "writes",
        "notes"
      ],
      "additionalProperties": false
    }
  ]
}

See exit codes for the status the process returns.

Navigation

Type to search…

↑↓ navigate↵ selectEsc close

Overlane Agent

Ask about the docs. Answers are quoted from the pages, with links. This panel cannot change anything.

    Questions are answered in your browser from the docs index. Nothing you type here is stored or sent anywhere.