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-runBehavior
- 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.