openvibers/openvibe.contracts Commits
Contracts 0.177.0: project secrets — written once, used by name, never read back (ADR-056, network.secret.use) (#137)
Changes
@@@ -4,6 +4,19 @@ All notable changes to `openvibe-contracts`. Releases are git tags (`vX.Y.Z`) thfrom `https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/<tag>`. Before v0.30.0,the notes were in the tag and commit messages (`git tag -n1`).++## 0.177.0 — 2026-10-15++++- **Project secrets (ADR-056).** OpenVibe.Network keeps secrets per project and environment, written once and used by++ name: no API returns a value to a person.++ - `network.project-secret@1`: what members and staff see (name, environment, version, a keyed fingerprint, grants,++ who set it and when).++ - `network.secret.use` (first-party, `POST /internal/secrets/use`): a service the project granted a secret to either++ signs a message with it (`sign`, HMAC-SHA256; the value never leaves Network) or receives the value for an https++ origin the grant lists (`reveal`). `network.secret-use-request@1` and `network.secret-use-result@1` refuse a sign++ without a message, a reveal without an origin, and either one mixed with the other's field.++ - Listed in Network's manifest. Fixtures: valid signing and reveal grants, sign and reveal requests and results;++ invalid a secret with its value, an upper-case name, an http origin, and mixed or missing fields.++## 0.176.1 — 2026-10-15- **`media.object.s3`** lists CopyObject and UploadPartCopy (Media#113): server-side copies within the key's environment,@@@ -2883,6 +2883,36 @@"status": "active","adr": "ADR-014"},++ {++ "id": "network.project-secret",++ "version": "1.0.0",++ "owner": "network",++ "schema": "network/project-secret.v1.json",++ "visibility": "first-party",++ "compatibility": "backward",++ "status": "active",++ "adr": "ADR-056"++ },++ {++ "id": "network.secret-use-request",++ "version": "1.0.0",++ "owner": "network",++ "schema": "network/secret-use-request.v1.json",++ "visibility": "first-party",++ "compatibility": "backward",++ "status": "active",++ "adr": "ADR-056"++ },++ {++ "id": "network.secret-use-result",++ "version": "1.0.0",++ "owner": "network",++ "schema": "network/secret-use-result.v1.json",++ "visibility": "first-party",++ "compatibility": "backward",++ "status": "active",++ "adr": "ADR-056"++ },{"id": "network.status-incident","version": "1.0.0",nnew file mode 100644@@@ -0,0 +1,37 @@++{++ "$schema": "https://json-schema.org/draft/2020-12/schema",++ "$id": "https://openvibe.network/contracts/network/project-secret.v1.json",++ "title": "ProjectSecret",++ "description": "network.project-secret@1 (ADR-056): one project secret as OpenVibe.Network shows it to the project's members and staff — its name, environment, version, a keyed fingerprint and its grants. Never the value: a secret is written once and used by name (sign or reveal through network.secret.use).",++ "type": "object",++ "required": ["project_id", "environment", "name", "version", "fingerprint", "grants", "created_at", "created_by", "updated_at", "updated_by"],++ "additionalProperties": false,++ "$defs": {++ "subject": { "type": "string", "pattern": "^usr_[0-9A-HJKMNP-TV-Z]{26}$" },++ "grant": {++ "type": "object",++ "required": ["service", "purposes", "origins", "created_at", "created_by", "last_used_at"],++ "additionalProperties": false,++ "properties": {++ "service": { "type": "string", "pattern": "^[a-z][a-z0-9-]{1,39}$", "description": "The service id the secret is granted to (its token's svc:<id>)." },++ "purposes": { "type": "array", "minItems": 1, "maxItems": 2, "uniqueItems": true, "items": { "enum": ["sign", "reveal"] } },++ "origins": { "type": "array", "maxItems": 10, "uniqueItems": true, "items": { "type": "string", "pattern": "^https://[a-z0-9.-]+(:[0-9]{1,5})?$" }, "description": "The https origins the value may be revealed for (reveal only; empty for sign)." },++ "created_at": { "type": "string", "format": "date-time" },++ "created_by": { "$ref": "#/$defs/subject" },++ "last_used_at": { "type": ["string", "null"], "format": "date-time" }++ }++ }++ },++ "properties": {++ "project_id": { "type": "string", "pattern": "^prj_[0-9A-HJKMNP-TV-Z]{26}$" },++ "environment": { "enum": ["sandbox", "production"] },++ "name": { "type": "string", "pattern": "^[a-z][a-z0-9_-]{0,63}$" },++ "version": { "type": "integer", "minimum": 1, "description": "One more each time the value is set again." },++ "fingerprint": { "type": "string", "pattern": "^[0-9a-f]{12}$", "description": "A keyed hash of the value: equal values have equal fingerprints, and it reveals nothing else." },++ "grants": { "type": "array", "maxItems": 20, "items": { "$ref": "#/$defs/grant" } },++ "created_at": { "type": "string", "format": "date-time" },++ "created_by": { "$ref": "#/$defs/subject" },++ "updated_at": { "type": "string", "format": "date-time" },++ "updated_by": { "$ref": "#/$defs/subject" }++ }++}nnew file mode 100644@@@ -0,0 +1,21 @@++{++ "$schema": "https://json-schema.org/draft/2020-12/schema",++ "$id": "https://openvibe.network/contracts/network/secret-use-request.v1.json",++ "title": "SecretUseRequest",++ "description": "network.secret-use-request@1 (ADR-056): what a first-party service sends to POST /internal/secrets/use with network.secret.use. sign asks for HMAC-SHA256 of message under the secret (the value never leaves Network); reveal asks for the value, to send to origin. Either needs a grant of that secret to the calling service for that purpose (and origin).",++ "type": "object",++ "required": ["project_id", "environment", "name", "purpose"],++ "additionalProperties": false,++ "properties": {++ "project_id": { "type": "string", "pattern": "^prj_[0-9A-HJKMNP-TV-Z]{26}$" },++ "environment": { "enum": ["sandbox", "production"] },++ "name": { "type": "string", "pattern": "^[a-z][a-z0-9_-]{0,63}$" },++ "purpose": { "enum": ["sign", "reveal"] },++ "message": { "type": "string", "maxLength": 1048576, "description": "sign: the exact text to sign (for a webhook delivery, \"<timestamp>.<raw body>\"). Not allowed with reveal." },++ "origin": { "type": "string", "pattern": "^https://[a-z0-9.-]+(:[0-9]{1,5})?$", "description": "reveal: the https origin the value will be sent to; the grant must list it. Not allowed with sign." }++ },++ "allOf": [++ { "if": { "properties": { "purpose": { "const": "sign" } } }, "then": { "required": ["message"], "not": { "required": ["origin"] } } },++ { "if": { "properties": { "purpose": { "const": "reveal" } } }, "then": { "required": ["origin"], "not": { "required": ["message"] } } }++ ]++}nnew file mode 100644@@@ -0,0 +1,20 @@++{++ "$schema": "https://json-schema.org/draft/2020-12/schema",++ "$id": "https://openvibe.network/contracts/network/secret-use-result.v1.json",++ "title": "SecretUseResult",++ "description": "network.secret-use-result@1 (ADR-056): POST /internal/secrets/use's answer — the secret's name and version with the HMAC-SHA256 signature (sign) or the value (reveal). Sent with Cache-Control: no-store; a caller keeps a revealed value only as long as the request it is for.",++ "type": "object",++ "required": ["name", "version", "purpose"],++ "additionalProperties": false,++ "properties": {++ "name": { "type": "string", "pattern": "^[a-z][a-z0-9_-]{0,63}$" },++ "version": { "type": "integer", "minimum": 1 },++ "purpose": { "enum": ["sign", "reveal"] },++ "signature": { "type": "string", "pattern": "^[0-9a-f]{64}$", "description": "sign: the lowercase hex HMAC-SHA256 of the message under the secret." },++ "value": { "type": "string", "minLength": 1, "maxLength": 8192, "description": "reveal: the value." }++ },++ "allOf": [++ { "if": { "properties": { "purpose": { "const": "sign" } } }, "then": { "required": ["signature"], "not": { "required": ["value"] } } },++ { "if": { "properties": { "purpose": { "const": "reveal" } } }, "then": { "required": ["value"], "not": { "required": ["signature"] } } }++ ]++}nnew file mode 100644@@@ -0,0 +1,52 @@++# ADR-056: Project secrets — written once, used by name, never read back++++**Status:** Accepted 2026-10-15 (plan T13/T17: the "project secret store" that `secret_ref` waits on). Amends ADR-014++(Network owns projects and credentials) with one more thing a project holds, and ADR-044 §7 (Actor webhooks name a++project secret by `secret_ref`).++++## Context++++- Services that act for a project need secrets the project's people choose: the key that signs Actor's webhook++ deliveries to their server (ADR-044 names `secret_ref` for it), a token Watch sends when it checks their private API,++ the password of their ONVIF camera (ADR-043).++- Today each of these is an operator's environment variable with a hand-written grant (Watch's `WATCH_SECRET_GRANTS`,++ Bot's `BOT_ONVIF_CAMERAS` references) or a value the service makes and shows once (Actor's per-task++ `webhook_secret`). A project cannot bring its own, and nothing is managed in one place.++- Network already owns what a project is, who its members are, its credentials and its audit (ADR-014).++++## Decision++++1. **Network keeps project secrets**, per project and environment (`sandbox`, `production`), each under a name++ (`^[a-z][a-z0-9_-]{0,63}$`). A value is 1 to 8192 bytes of UTF-8, at most 50 secrets per project environment.++2. **Write-only.** A project admin or owner sets a value (`PUT /api/v1/projects/:project/secrets/:env/:name`); setting it++ again replaces it and adds one to its `version`. No API returns a value to a person, staff included. Members++ (viewer and up) and staff read the metadata only: name, environment, version, a fingerprint, the grants, who set it++ and when (`network.project-secret@1`). The fingerprint is a keyed hash, so it tells two values apart without++ revealing either.++3. **Encrypted at rest** with AES-256-GCM under a key held only in Network's environment (`NETWORK_SECRETS_KEY`, 32 random++ bytes). Each row carries its key id, so the key can be rotated. Without the key the feature is off (503++ `secrets.unavailable`), never plaintext.++4. **A name is not a capability.** A service uses a secret only when the project granted that secret to that service:++ `PUT …/:name/grants/:service { purposes, origins }`, admin or owner. There are two purposes:++ - `sign`: Network computes HMAC-SHA256 of a message under the secret and answers the signature. The value never++ leaves Network. This is how webhook deliveries are signed.++ - `reveal`: Network answers the value, only to the granted service and only for an `origin` the grant lists (an++ https origin the service will send it to). This is for credentials another system must receive as they are.++5. **One first-party capability, `network.secret.use`**, on `POST /internal/secrets/use`++ (`network.secret-use-request@1` → `network.secret-use-result@1`). The caller is the service in its token++ (`svc:<id>`). A missing secret, a missing grant, a purpose or origin the grant does not list, and an archived project++ all answer 404 `secret.not_found`, so a guess learns nothing.++6. **Audit.** Every value set, deletion and grant change is a `dev_audit` row, and so is the first use of each secret per++ service, purpose and UTC day. A grant records when it was last used. Values and messages are never written anywhere++ but the encrypted column.++7. **A project archived is crypto-shredded:** its secrets' ciphertexts are deleted when it is archived, and its metadata++ stays in its audit.++++## Consequences++++- Actor's `secret_ref` names a secret in the task's project, granted to `actor` for `sign`. Watch, Bot and others follow++ the same rule, and their operator-held grants become unnecessary for project resources.++- The Services console shows and edits secrets through these routes with the person's own token, as it does apps and++ grants. Services stores nothing.++- A person without a project has no secret store. Personal resources keep their service's own secrets (Actor's per-task++ webhook secret).@@@ -49,3 +49,4 @@ Platform-wide decisions from the OpenVibe development roadmap (section 10). Each| [ADR-053](ADR-053-website-host-boundary.md) | The Website/Host boundary: OpenVibe.Website owns authoring (projects, pages, revisions, builds, Media asset pointers and intended domains) and OpenVibe.Host owns site, deploy, activation, domain binding/verification/TLS and serving; Website keeps no duplicate `host_sites`/`host_deploys` rows and calls Host's routes; a Website build is not a Host deploy; Website composes Host + Codes + Actor + Run + Media and is not OpenVibe.Sites | Proposed 2026-10-05 (plan T19), for the owner's review || [ADR-054](ADR-054-inventory-authority.md) | The OpenVibe inventory: a new authority, OpenVibe.Inventory (`inventory`, `ov_inventory`), owns item kinds (contract + renderer per surface), definitions (`itd_`), instances (`inv_`), the equipped set and an append-only ledger; issuers grant within their namespace; no selling, buying, trading or conversion until a later money ADR (ADR-012/ADR-025); Live's cosmetics are the first kinds, migrated convert-verify-delete | Accepted 2026-10-09 (plan T21) || [ADR-055](ADR-055-inventory-money.md) | Money and the inventory, in phases: A primary sales (an issuer prices an item in Vibes, booked by Billing as an ENTITLEMENT with a creator share, or in OpenCoins as a loyalty shop with no payout); B gifting between people for giftable items (an ADR-012 rule 6 amendment); C trading and a market stay closed (ADR-025); never paid chance (no cases, crates, loot boxes) | Proposed 2026-10-09 (plan T21), for the owner's decision |++| [ADR-056](ADR-056-project-secrets.md) | Project secrets: OpenVibe.Network keeps them per project and environment, write-only (no API returns a value to a person), AES-256-GCM under `NETWORK_SECRETS_KEY`; a service uses one only when the project granted it, to `sign` (HMAC, the value never leaves Network) or to `reveal` it for a listed https origin, through first-party `network.secret.use`; archiving a project shreds its secrets | Accepted 2026-10-15 (plan T13/T17) |nnew file mode 100644@@@ -0,0 +1,25 @@++{++ "project_id": "prj_01M4XE52PGJDVR1KZ1AG9VYW3Q",++ "environment": "production",++ "name": "webhook-signing",++ "version": 2,++ "fingerprint": "3fa9c1d0be72",++ "grants": [++ {++ "service": "watch",++ "purposes": [++ "reveal"++ ],++ "origins": [++ "http://api.example.com"++ ],++ "created_at": "2026-10-15T05:00:00Z",++ "created_by": "usr_01M3JCFXCJZ2NS0732AKPCVVHR",++ "last_used_at": null++ }++ ],++ "created_at": "2026-10-15T04:58:00Z",++ "created_by": "usr_01M3JCFXCJZ2NS0732AKPCVVHR",++ "updated_at": "2026-10-15T05:10:00Z",++ "updated_by": "usr_01M3JCFXCJZ2NS0732AKPCVVHR"++}nnew file mode 100644@@@ -0,0 +1,23 @@++{++ "project_id": "prj_01M4XE52PGJDVR1KZ1AG9VYW3Q",++ "environment": "production",++ "name": "Webhook",++ "version": 2,++ "fingerprint": "3fa9c1d0be72",++ "grants": [++ {++ "service": "actor",++ "purposes": [++ "sign"++ ],++ "origins": [],++ "created_at": "2026-10-15T05:00:00Z",++ "created_by": "usr_01M3JCFXCJZ2NS0732AKPCVVHR",++ "last_used_at": null++ }++ ],++ "created_at": "2026-10-15T04:58:00Z",++ "created_by": "usr_01M3JCFXCJZ2NS0732AKPCVVHR",++ "updated_at": "2026-10-15T05:10:00Z",++ "updated_by": "usr_01M3JCFXCJZ2NS0732AKPCVVHR"++}nnew file mode 100644@@@ -0,0 +1,24 @@++{++ "project_id": "prj_01M4XE52PGJDVR1KZ1AG9VYW3Q",++ "environment": "production",++ "name": "webhook-signing",++ "version": 2,++ "fingerprint": "3fa9c1d0be72",++ "grants": [++ {++ "service": "actor",++ "purposes": [++ "sign"++ ],++ "origins": [],++ "created_at": "2026-10-15T05:00:00Z",++ "created_by": "usr_01M3JCFXCJZ2NS0732AKPCVVHR",++ "last_used_at": null++ }++ ],++ "created_at": "2026-10-15T04:58:00Z",++ "created_by": "usr_01M3JCFXCJZ2NS0732AKPCVVHR",++ "updated_at": "2026-10-15T05:10:00Z",++ "updated_by": "usr_01M3JCFXCJZ2NS0732AKPCVVHR",++ "value": "hunter2"++}nnew file mode 100644@@@ -0,0 +1,25 @@++{++ "project_id": "prj_01M4XE52PGJDVR1KZ1AG9VYW3Q",++ "environment": "production",++ "name": "api_token",++ "version": 1,++ "fingerprint": "3fa9c1d0be72",++ "grants": [++ {++ "service": "watch",++ "purposes": [++ "reveal"++ ],++ "origins": [++ "https://api.example.com"++ ],++ "created_at": "2026-10-15T05:00:00Z",++ "created_by": "usr_01M3JCFXCJZ2NS0732AKPCVVHR",++ "last_used_at": "2026-10-15T05:30:00Z"++ }++ ],++ "created_at": "2026-10-15T04:58:00Z",++ "created_by": "usr_01M3JCFXCJZ2NS0732AKPCVVHR",++ "updated_at": "2026-10-15T05:10:00Z",++ "updated_by": "usr_01M3JCFXCJZ2NS0732AKPCVVHR"++}nnew file mode 100644@@@ -0,0 +1,23 @@++{++ "project_id": "prj_01M4XE52PGJDVR1KZ1AG9VYW3Q",++ "environment": "production",++ "name": "webhook-signing",++ "version": 2,++ "fingerprint": "3fa9c1d0be72",++ "grants": [++ {++ "service": "actor",++ "purposes": [++ "sign"++ ],++ "origins": [],++ "created_at": "2026-10-15T05:00:00Z",++ "created_by": "usr_01M3JCFXCJZ2NS0732AKPCVVHR",++ "last_used_at": null++ }++ ],++ "created_at": "2026-10-15T04:58:00Z",++ "created_by": "usr_01M3JCFXCJZ2NS0732AKPCVVHR",++ "updated_at": "2026-10-15T05:10:00Z",++ "updated_by": "usr_01M3JCFXCJZ2NS0732AKPCVVHR"++}nnew file mode 100644@@@ -0,0 +1,8 @@++{++ "project_id": "prj_01M4XE52PGJDVR1KZ1AG9VYW3Q",++ "environment": "production",++ "name": "api_token",++ "purpose": "reveal",++ "origin": "https://api.example.com",++ "message": "x"++}nnew file mode 100644@@@ -0,0 +1,6 @@++{++ "project_id": "prj_01M4XE52PGJDVR1KZ1AG9VYW3Q",++ "environment": "production",++ "name": "api_token",++ "purpose": "reveal"++}nnew file mode 100644@@@ -0,0 +1,6 @@++{++ "project_id": "prj_01M4XE52PGJDVR1KZ1AG9VYW3Q",++ "environment": "production",++ "name": "webhook-signing",++ "purpose": "sign"++}nnew file mode 100644@@@ -0,0 +1,7 @@++{++ "project_id": "prj_01M4XE52PGJDVR1KZ1AG9VYW3Q",++ "environment": "sandbox",++ "name": "api_token",++ "purpose": "reveal",++ "origin": "https://api.example.com"++}nnew file mode 100644@@@ -0,0 +1,7 @@++{++ "project_id": "prj_01M4XE52PGJDVR1KZ1AG9VYW3Q",++ "environment": "production",++ "name": "webhook-signing",++ "purpose": "sign",++ "message": "1760504400.{\"state\":\"succeeded\"}"++}nnew file mode 100644@@@ -0,0 +1,6 @@++{++ "name": "webhook-signing",++ "version": 2,++ "purpose": "sign",++ "signature": "abc"++}nnew file mode 100644@@@ -0,0 +1,7 @@++{++ "name": "webhook-signing",++ "version": 2,++ "purpose": "sign",++ "signature": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",++ "value": "x"++}nnew file mode 100644@@@ -0,0 +1,6 @@++{++ "name": "webhook-signing",++ "version": 2,++ "purpose": "sign",++ "signature": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"++}nnew file mode 100644@@@ -0,0 +1,6 @@++{++ "name": "api_token",++ "version": 1,++ "purpose": "reveal",++ "value": "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk"++}@@@ -29865,6 +29865,315 @@}}},++ "network.project-secret": {++ "version": "1.0.0",++ "owner": "network",++ "status": "active",++ "schema": {++ "$schema": "https://json-schema.org/draft/2020-12/schema",++ "$id": "https://openvibe.network/contracts/network/project-secret.v1.json",++ "title": "ProjectSecret",++ "description": "network.project-secret@1 (ADR-056): one project secret as OpenVibe.Network shows it to the project's members and staff — its name, environment, version, a keyed fingerprint and its grants. Never the value: a secret is written once and used by name (sign or reveal through network.secret.use).",++ "type": "object",++ "required": [++ "project_id",++ "environment",++ "name",++ "version",++ "fingerprint",++ "grants",++ "created_at",++ "created_by",++ "updated_at",++ "updated_by"++ ],++ "additionalProperties": false,++ "$defs": {++ "subject": {++ "type": "string",++ "pattern": "^usr_[0-9A-HJKMNP-TV-Z]{26}$"++ },++ "grant": {++ "type": "object",++ "required": [++ "service",++ "purposes",++ "origins",++ "created_at",++ "created_by",++ "last_used_at"++ ],++ "additionalProperties": false,++ "properties": {++ "service": {++ "type": "string",++ "pattern": "^[a-z][a-z0-9-]{1,39}$",++ "description": "The service id the secret is granted to (its token's svc:<id>)."++ },++ "purposes": {++ "type": "array",++ "minItems": 1,++ "maxItems": 2,++ "uniqueItems": true,++ "items": {++ "enum": [++ "sign",++ "reveal"++ ]++ }++ },++ "origins": {++ "type": "array",++ "maxItems": 10,++ "uniqueItems": true,++ "items": {++ "type": "string",++ "pattern": "^https://[a-z0-9.-]+(:[0-9]{1,5})?$"++ },++ "description": "The https origins the value may be revealed for (reveal only; empty for sign)."++ },++ "created_at": {++ "type": "string",++ "format": "date-time"++ },++ "created_by": {++ "$ref": "#/$defs/subject"++ },++ "last_used_at": {++ "type": [++ "string",++ "null"++ ],++ "format": "date-time"++ }++ }++ }++ },++ "properties": {++ "project_id": {++ "type": "string",++ "pattern": "^prj_[0-9A-HJKMNP-TV-Z]{26}$"++ },++ "environment": {++ "enum": [++ "sandbox",++ "production"++ ]++ },++ "name": {++ "type": "string",++ "pattern": "^[a-z][a-z0-9_-]{0,63}$"++ },++ "version": {++ "type": "integer",++ "minimum": 1,++ "description": "One more each time the value is set again."++ },++ "fingerprint": {++ "type": "string",++ "pattern": "^[0-9a-f]{12}$",++ "description": "A keyed hash of the value: equal values have equal fingerprints, and it reveals nothing else."++ },++ "grants": {++ "type": "array",++ "maxItems": 20,++ "items": {++ "$ref": "#/$defs/grant"++ }++ },++ "created_at": {++ "type": "string",++ "format": "date-time"++ },++ "created_by": {++ "$ref": "#/$defs/subject"++ },++ "updated_at": {++ "type": "string",++ "format": "date-time"++ },++ "updated_by": {++ "$ref": "#/$defs/subject"++ }++ }++ }++ },++ "network.secret-use-request": {++ "version": "1.0.0",++ "owner": "network",++ "status": "active",++ "schema": {++ "$schema": "https://json-schema.org/draft/2020-12/schema",++ "$id": "https://openvibe.network/contracts/network/secret-use-request.v1.json",++ "title": "SecretUseRequest",++ "description": "network.secret-use-request@1 (ADR-056): what a first-party service sends to POST /internal/secrets/use with network.secret.use. sign asks for HMAC-SHA256 of message under the secret (the value never leaves Network); reveal asks for the value, to send to origin. Either needs a grant of that secret to the calling service for that purpose (and origin).",++ "type": "object",++ "required": [++ "project_id",++ "environment",++ "name",++ "purpose"++ ],++ "additionalProperties": false,++ "properties": {++ "project_id": {++ "type": "string",++ "pattern": "^prj_[0-9A-HJKMNP-TV-Z]{26}$"++ },++ "environment": {++ "enum": [++ "sandbox",++ "production"++ ]++ },++ "name": {++ "type": "string",++ "pattern": "^[a-z][a-z0-9_-]{0,63}$"++ },++ "purpose": {++ "enum": [++ "sign",++ "reveal"++ ]++ },++ "message": {++ "type": "string",++ "maxLength": 1048576,++ "description": "sign: the exact text to sign (for a webhook delivery, \"<timestamp>.<raw body>\"). Not allowed with reveal."++ },++ "origin": {++ "type": "string",++ "pattern": "^https://[a-z0-9.-]+(:[0-9]{1,5})?$",++ "description": "reveal: the https origin the value will be sent to; the grant must list it. Not allowed with sign."++ }++ },++ "allOf": [++ {++ "if": {++ "properties": {++ "purpose": {++ "const": "sign"++ }++ }++ },++ "then": {++ "required": [++ "message"++ ],++ "not": {++ "required": [++ "origin"++ ]++ }++ }++ },++ {++ "if": {++ "properties": {++ "purpose": {++ "const": "reveal"++ }++ }++ },++ "then": {++ "required": [++ "origin"++ ],++ "not": {++ "required": [++ "message"++ ]++ }++ }++ }++ ]++ }++ },++ "network.secret-use-result": {++ "version": "1.0.0",++ "owner": "network",++ "status": "active",++ "schema": {++ "$schema": "https://json-schema.org/draft/2020-12/schema",++ "$id": "https://openvibe.network/contracts/network/secret-use-result.v1.json",++ "title": "SecretUseResult",++ "description": "network.secret-use-result@1 (ADR-056): POST /internal/secrets/use's answer — the secret's name and version with the HMAC-SHA256 signature (sign) or the value (reveal). Sent with Cache-Control: no-store; a caller keeps a revealed value only as long as the request it is for.",++ "type": "object",++ "required": [++ "name",++ "version",++ "purpose"++ ],++ "additionalProperties": false,++ "properties": {++ "name": {++ "type": "string",++ "pattern": "^[a-z][a-z0-9_-]{0,63}$"++ },++ "version": {++ "type": "integer",++ "minimum": 1++ },++ "purpose": {++ "enum": [++ "sign",++ "reveal"++ ]++ },++ "signature": {++ "type": "string",++ "pattern": "^[0-9a-f]{64}$",++ "description": "sign: the lowercase hex HMAC-SHA256 of the message under the secret."++ },++ "value": {++ "type": "string",++ "minLength": 1,++ "maxLength": 8192,++ "description": "reveal: the value."++ }++ },++ "allOf": [++ {++ "if": {++ "properties": {++ "purpose": {++ "const": "sign"++ }++ }++ },++ "then": {++ "required": [++ "signature"++ ],++ "not": {++ "required": [++ "value"++ ]++ }++ }++ },++ {++ "if": {++ "properties": {++ "purpose": {++ "const": "reveal"++ }++ }++ },++ "then": {++ "required": [++ "value"++ ],++ "not": {++ "required": [++ "signature"++ ]++ }++ }++ }++ ]++ }++ },"network.status-incident": {"version": "1.0.0","owner": "network",@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Actor API",-- "version": "0.176.1",-- "description": "Routes of OpenVibe.Actor as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.177.0",++ "description": "Routes of OpenVibe.Actor as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.","license": {"name": "MIT","identifier": "MIT"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.AI API",-- "version": "0.176.1",-- "description": "Routes of OpenVibe.AI as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.177.0",++ "description": "Routes of OpenVibe.AI as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.","license": {"name": "MIT","identifier": "MIT"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Billing API",-- "version": "0.176.1",-- "description": "Routes of OpenVibe.Billing as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.177.0",++ "description": "Routes of OpenVibe.Billing as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.","license": {"name": "MIT","identifier": "MIT"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Blog API",-- "version": "0.176.1",-- "description": "Routes of OpenVibe.Blog as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.177.0",++ "description": "Routes of OpenVibe.Blog as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.","license": {"name": "MIT","identifier": "MIT"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Bot API",-- "version": "0.176.1",-- "description": "Routes of OpenVibe.Bot as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.177.0",++ "description": "Routes of OpenVibe.Bot as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.","license": {"name": "MIT","identifier": "MIT"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Chat API",-- "version": "0.176.1",-- "description": "Routes of OpenVibe.Chat as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.177.0",++ "description": "Routes of OpenVibe.Chat as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.","license": {"name": "MIT","identifier": "MIT"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Codes API",-- "version": "0.176.1",-- "description": "Routes of OpenVibe.Codes as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.177.0",++ "description": "Routes of OpenVibe.Codes as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.","license": {"name": "MIT","identifier": "MIT"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Community API",-- "version": "0.176.1",-- "description": "Routes of OpenVibe.Community as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.177.0",++ "description": "Routes of OpenVibe.Community as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.","license": {"name": "MIT","identifier": "MIT"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Coupons API",-- "version": "0.176.1",-- "description": "Routes of OpenVibe.Coupons as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.177.0",++ "description": "Routes of OpenVibe.Coupons as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.","license": {"name": "MIT","identifier": "MIT"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Deals API",-- "version": "0.176.1",-- "description": "Routes of OpenVibe.Deals as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.177.0",++ "description": "Routes of OpenVibe.Deals as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.","license": {"name": "MIT","identifier": "MIT"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Events API",-- "version": "0.176.1",-- "description": "Routes of OpenVibe.Events as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.177.0",++ "description": "Routes of OpenVibe.Events as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.","license": {"name": "MIT","identifier": "MIT"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Food API",-- "version": "0.176.1",-- "description": "Routes of OpenVibe.Food as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.177.0",++ "description": "Routes of OpenVibe.Food as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.","license": {"name": "MIT","identifier": "MIT"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Games API",-- "version": "0.176.1",-- "description": "Routes of OpenVibe.Games as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.177.0",++ "description": "Routes of OpenVibe.Games as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.","license": {"name": "MIT","identifier": "MIT"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Host API",-- "version": "0.176.1",-- "description": "Routes of OpenVibe.Host as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.177.0",++ "description": "Routes of OpenVibe.Host as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.","license": {"name": "MIT","identifier": "MIT"@@@ -131,8 +131,8 @@"service": "network","name": "OpenVibe.Network","origin": "https://openvibe.network",-- "operations": 40,-- "capabilities": 28++ "operations": 41,++ "capabilities": 29},{"service": "news",@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Inventory API",-- "version": "0.176.1",-- "description": "Routes of OpenVibe.Inventory as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.177.0",++ "description": "Routes of OpenVibe.Inventory as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.","license": {"name": "MIT","identifier": "MIT"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Live API",-- "version": "0.176.1",-- "description": "Routes of OpenVibe.Live as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.177.0",++ "description": "Routes of OpenVibe.Live as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.","license": {"name": "MIT","identifier": "MIT"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.MediaHub API",-- "version": "0.176.1",-- "description": "Routes of OpenVibe.MediaHub as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.177.0",++ "description": "Routes of OpenVibe.MediaHub as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.","license": {"name": "MIT","identifier": "MIT"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Media API",-- "version": "0.176.1",-- "description": "Routes of OpenVibe.Media as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.177.0",++ "description": "Routes of OpenVibe.Media as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.","license": {"name": "MIT","identifier": "MIT"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Network API",-- "version": "0.176.1",-- "description": "Routes of OpenVibe.Network as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.177.0",++ "description": "Routes of OpenVibe.Network as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.","license": {"name": "MIT","identifier": "MIT"@@@ -2217,6 +2217,62 @@}}},++ "/internal/secrets/use": {++ "post": {++ "operationId": "post_internal_secrets_use",++ "summary": "Sign with, or reveal, a project secret the project granted to the calling service (ADR-056): sign answers HMAC-SHA256 of a message and never the value; reveal answers the value only for an origin the ",++ "description": "**network.secret.use** (first-party): Sign with, or reveal, a project secret the project granted to the calling service (ADR-056): sign answers HMAC-SHA256 of a message and never the value; reveal answers the value only for an origin the grant lists.",++ "tags": [++ "network.secret"++ ],++ "x-openvibe-capabilities": [++ "network.secret.use"++ ],++ "x-openvibe-visibility": [++ "first-party"++ ],++ "x-openvibe-quota-class": "secrets-use",++ "security": [++ {++ "openvibeToken": [++ "network.secret.use"++ ]++ }++ ],++ "requestBody": {++ "required": false,++ "content": {++ "application/json": {++ "schema": {++ "$ref": "#/components/schemas/network.secret-use-request.v1"++ }++ }++ }++ },++ "responses": {++ "2XX": {++ "description": "Success",++ "content": {++ "application/json": {++ "schema": {++ "$ref": "#/components/schemas/network.secret-use-result.v1"++ }++ }++ }++ },++ "default": {++ "description": "An error (RFC 9457 problem details)",++ "content": {++ "application/problem+json": {++ "schema": {++ "$ref": "#/components/schemas/errors.problem.v1"++ }++ }++ }++ }++ }++ }++ },"/internal/url-registry/resolved": {"get": {"operationId": "get_internal_url_registry_resolved",@@@ -4540,6 +4596,168 @@}}},++ "network.secret-use-request.v1": {++ "title": "SecretUseRequest",++ "description": "network.secret-use-request@1 (ADR-056): what a first-party service sends to POST /internal/secrets/use with network.secret.use. sign asks for HMAC-SHA256 of message under the secret (the value never leaves Network); reveal asks for the value, to send to origin. Either needs a grant of that secret to the calling service for that purpose (and origin).",++ "type": "object",++ "required": [++ "project_id",++ "environment",++ "name",++ "purpose"++ ],++ "additionalProperties": false,++ "properties": {++ "project_id": {++ "type": "string",++ "pattern": "^prj_[0-9A-HJKMNP-TV-Z]{26}$"++ },++ "environment": {++ "enum": [++ "sandbox",++ "production"++ ]++ },++ "name": {++ "type": "string",++ "pattern": "^[a-z][a-z0-9_-]{0,63}$"++ },++ "purpose": {++ "enum": [++ "sign",++ "reveal"++ ]++ },++ "message": {++ "type": "string",++ "maxLength": 1048576,++ "description": "sign: the exact text to sign (for a webhook delivery, \"<timestamp>.<raw body>\"). Not allowed with reveal."++ },++ "origin": {++ "type": "string",++ "pattern": "^https://[a-z0-9.-]+(:[0-9]{1,5})?$",++ "description": "reveal: the https origin the value will be sent to; the grant must list it. Not allowed with sign."++ }++ },++ "allOf": [++ {++ "if": {++ "properties": {++ "purpose": {++ "const": "sign"++ }++ }++ },++ "then": {++ "required": [++ "message"++ ],++ "not": {++ "required": [++ "origin"++ ]++ }++ }++ },++ {++ "if": {++ "properties": {++ "purpose": {++ "const": "reveal"++ }++ }++ },++ "then": {++ "required": [++ "origin"++ ],++ "not": {++ "required": [++ "message"++ ]++ }++ }++ }++ ]++ },++ "network.secret-use-result.v1": {++ "title": "SecretUseResult",++ "description": "network.secret-use-result@1 (ADR-056): POST /internal/secrets/use's answer — the secret's name and version with the HMAC-SHA256 signature (sign) or the value (reveal). Sent with Cache-Control: no-store; a caller keeps a revealed value only as long as the request it is for.",++ "type": "object",++ "required": [++ "name",++ "version",++ "purpose"++ ],++ "additionalProperties": false,++ "properties": {++ "name": {++ "type": "string",++ "pattern": "^[a-z][a-z0-9_-]{0,63}$"++ },++ "version": {++ "type": "integer",++ "minimum": 1++ },++ "purpose": {++ "enum": [++ "sign",++ "reveal"++ ]++ },++ "signature": {++ "type": "string",++ "pattern": "^[0-9a-f]{64}$",++ "description": "sign: the lowercase hex HMAC-SHA256 of the message under the secret."++ },++ "value": {++ "type": "string",++ "minLength": 1,++ "maxLength": 8192,++ "description": "reveal: the value."++ }++ },++ "allOf": [++ {++ "if": {++ "properties": {++ "purpose": {++ "const": "sign"++ }++ }++ },++ "then": {++ "required": [++ "signature"++ ],++ "not": {++ "required": [++ "value"++ ]++ }++ }++ },++ {++ "if": {++ "properties": {++ "purpose": {++ "const": "reveal"++ }++ }++ },++ "then": {++ "required": [++ "value"++ ],++ "not": {++ "required": [++ "signature"++ ]++ }++ }++ }++ ]++ },"network.staff-list-result.v1": {"title": "NetworkStaffListResult","description": "network.staff-list-result@1: the answer of network.staff.read on OpenVibe.Network. GET /api/v1/staff/moderators[?service=chat|live|community|pastes|calls] (a service token holding network.staff.read, or a signed-in person holding staff.moderation.logs) → { service, staff }: the network's global moderators, admins and the owner who are not banned, with the staff capabilities their role holds in the contracts staff map; ?service keeps those holding the capability that moderates that service (another service name keeps those holding staff.content.moderate; an invalid value is ignored and answered as null). Answered with Cache-Control: private, no-store; a person without staff.moderation.logs gets 403 { error: forbidden }.",@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.News API",-- "version": "0.176.1",-- "description": "Routes of OpenVibe.News as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.177.0",++ "description": "Routes of OpenVibe.News as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.","license": {"name": "MIT","identifier": "MIT"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenRestream API",-- "version": "0.176.1",-- "description": "Routes of OpenRestream as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.177.0",++ "description": "Routes of OpenRestream as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.","license": {"name": "MIT","identifier": "MIT"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Play API",-- "version": "0.176.1",-- "description": "Routes of OpenVibe.Play as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.177.0",++ "description": "Routes of OpenVibe.Play as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.","license": {"name": "MIT","identifier": "MIT"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Reviews API",-- "version": "0.176.1",-- "description": "Routes of OpenVibe.Reviews as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.177.0",++ "description": "Routes of OpenVibe.Reviews as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.","license": {"name": "MIT","identifier": "MIT"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Run API",-- "version": "0.176.1",-- "description": "Routes of OpenVibe.Run as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.177.0",++ "description": "Routes of OpenVibe.Run as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.","license": {"name": "MIT","identifier": "MIT"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Search API",-- "version": "0.176.1",-- "description": "Routes of OpenVibe.Search as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.177.0",++ "description": "Routes of OpenVibe.Search as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.","license": {"name": "MIT","identifier": "MIT"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Services API",-- "version": "0.176.1",-- "description": "Routes of OpenVibe.Services as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.177.0",++ "description": "Routes of OpenVibe.Services as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.","license": {"name": "MIT","identifier": "MIT"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Sources API",-- "version": "0.176.1",-- "description": "Routes of OpenVibe.Sources as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.177.0",++ "description": "Routes of OpenVibe.Sources as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.","license": {"name": "MIT","identifier": "MIT"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Space API",-- "version": "0.176.1",-- "description": "Routes of OpenVibe.Space as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.177.0",++ "description": "Routes of OpenVibe.Space as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.","license": {"name": "MIT","identifier": "MIT"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Tips API",-- "version": "0.176.1",-- "description": "Routes of OpenVibe.Tips as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.177.0",++ "description": "Routes of OpenVibe.Tips as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.","license": {"name": "MIT","identifier": "MIT"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Tools API",-- "version": "0.176.1",-- "description": "Routes of OpenVibe.Tools as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.177.0",++ "description": "Routes of OpenVibe.Tools as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.","license": {"name": "MIT","identifier": "MIT"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Trade API",-- "version": "0.176.1",-- "description": "Routes of OpenVibe.Trade as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.177.0",++ "description": "Routes of OpenVibe.Trade as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.","license": {"name": "MIT","identifier": "MIT"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.VIP API",-- "version": "0.176.1",-- "description": "Routes of OpenVibe.VIP as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.177.0",++ "description": "Routes of OpenVibe.VIP as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.","license": {"name": "MIT","identifier": "MIT"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Watch API",-- "version": "0.176.1",-- "description": "Routes of OpenVibe.Watch as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.177.0",++ "description": "Routes of OpenVibe.Watch as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.","license": {"name": "MIT","identifier": "MIT"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Wiki API",-- "version": "0.176.1",-- "description": "Routes of OpenVibe.Wiki as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.177.0",++ "description": "Routes of OpenVibe.Wiki as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.","license": {"name": "MIT","identifier": "MIT"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Work API",-- "version": "0.176.1",-- "description": "Routes of OpenVibe.Work as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.177.0",++ "description": "Routes of OpenVibe.Work as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.","license": {"name": "MIT","identifier": "MIT"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Zone API",-- "version": "0.176.1",-- "description": "Routes of OpenVibe.Zone as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.177.0",++ "description": "Routes of OpenVibe.Zone as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.","license": {"name": "MIT","identifier": "MIT"@@@ -149739,6 +149739,6624 @@ export interface ProjectUsageResult {};}++/** [email protected] (owner: network) */++/**++ * network.project-secret@1 (ADR-056): one project secret as OpenVibe.Network shows it to the project's members and staff — its name, environment, version, a keyed fingerprint and its grants. Never the value: a secret is written once and used by name (sign or reveal through network.secret.use).++ */++export interface ProjectSecret {++ project_id: string;++ environment: "sandbox" | "production";++ name: string;++ /**++ * One more each time the value is set again.++ */++ version: number;++ /**++ * A keyed hash of the value: equal values have equal fingerprints, and it reveals nothing else.++ */++ fingerprint: string;++ /**++ * @maxItems 20++ */++ grants:++ | []++ | [++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ }++ ]++ | [++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ }++ ]++ | [++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ }++ ]++ | [++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ }++ ]++ | [++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ }++ ]++ | [++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ }++ ]++ | [++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ }++ ]++ | [++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ }++ ]++ | [++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ }++ ]++ | [++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ }++ ]++ | [++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ }++ ]++ | [++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ }++ ]++ | [++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ }++ ]++ | [++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ }++ ]++ | [++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ }++ ]++ | [++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ }++ ]++ | [++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ }++ ]++ | [++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ }++ ]++ | [++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ }++ ]++ | [++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ },++ {++ /**++ * The service id the secret is granted to (its token's svc:<id>).++ */++ service: string;++ /**++ * @minItems 1++ * @maxItems 2++ */++ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];++ /**++ * The https origins the value may be revealed for (reveal only; empty for sign).++ *++ * @maxItems 10++ */++ origins:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string];++ created_at: string;++ created_by: string;++ last_used_at: string | null;++ }++ ];++ created_at: string;++ created_by: string;++ updated_at: string;++ updated_by: string;++}++++/** [email protected] (owner: network) */++/**++ * network.secret-use-request@1 (ADR-056): what a first-party service sends to POST /internal/secrets/use with network.secret.use. sign asks for HMAC-SHA256 of message under the secret (the value never leaves Network); reveal asks for the value, to send to origin. Either needs a grant of that secret to the calling service for that purpose (and origin).++ */++export type SecretUseRequest = {++ [k: string]: unknown | undefined;++} & {++ project_id: string;++ environment: "sandbox" | "production";++ name: string;++ purpose: "sign" | "reveal";++ /**++ * sign: the exact text to sign (for a webhook delivery, "<timestamp>.<raw body>"). Not allowed with reveal.++ */++ message?: string;++ /**++ * reveal: the https origin the value will be sent to; the grant must list it. Not allowed with sign.++ */++ origin?: string;++};++++/** [email protected] (owner: network) */++/**++ * network.secret-use-result@1 (ADR-056): POST /internal/secrets/use's answer — the secret's name and version with the HMAC-SHA256 signature (sign) or the value (reveal). Sent with Cache-Control: no-store; a caller keeps a revealed value only as long as the request it is for.++ */++export type SecretUseResult = {++ [k: string]: unknown | undefined;++} & {++ name: string;++ version: number;++ purpose: "sign" | "reveal";++ /**++ * sign: the lowercase hex HMAC-SHA256 of the message under the secret.++ */++ signature?: string;++ /**++ * reveal: the value.++ */++ value?: string;++};++/** [email protected] (owner: network) *//*** network.status-incident@1 (roadmap WS-N task 12): one incident or maintenance window on openvibe.network/status, public. An incident moves investigating → identified → monitoring → resolved; a maintenance window scheduled → in_progress → completed. Each change adds an update with its message; the newest state is the incident's. Services are registry ids. Messages are plain text written for people (no internal hostnames, secrets or personal data).nnew file mode 100644@@@ -0,0 +1,21 @@++{++ "id": "network.secret.use",++ "version": "1.0",++ "owner": "network",++ "status": "active",++ "visibility": "first-party",++ "description": "Sign with, or reveal, a project secret the project granted to the calling service (ADR-056): sign answers HMAC-SHA256 of a message and never the value; reveal answers the value only for an origin the grant lists.",++ "inputSchema": "network.secret-use-request@1",++ "outputSchema": "network.secret-use-result@1",++ "permissions": [++ "secrets:use"++ ],++ "resourceConstraints": [++ "project"++ ],++ "quotaClass": "secrets-use",++ "events": [],++ "implementedBy": [++ "POST /internal/secrets/use"++ ]++}@@@ -60,6 +60,7 @@"network.registry.read","network.resource.read","network.resource.report",++ "network.secret.use","network.staff.read","network.status.incident"],@@@ -1,6 +1,6 @@{"name": "openvibe-contracts",-- "version": "0.176.1",++ "version": "0.177.0","description": "Machine-readable contracts for the OpenVibe network: schemas, manifests, ids, error envelope, capability checks.","main": "index.js","types": "generated/typescript/index.d.ts",
@@ -4,6 +4,19 @@ All notable changes to `openvibe-contracts`. Releases are git tags (`vX.Y.Z`) th
@@ -4,6 +4,19 @@ All notable changes to `openvibe-contracts`. Releases are git tags (`vX.Y.Z`) th
from `https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/<tag>`. Before v0.30.0,
from `https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/<tag>`. Before v0.30.0,
the notes were in the tag and commit messages (`git tag -n1`).
the notes were in the tag and commit messages (`git tag -n1`).
+## 0.177.0 — 2026-10-15
+
+- **Project secrets (ADR-056).** OpenVibe.Network keeps secrets per project and environment, written once and used by
+ name: no API returns a value to a person.
+ - `network.project-secret@1`: what members and staff see (name, environment, version, a keyed fingerprint, grants,
+ who set it and when).
+ - `network.secret.use` (first-party, `POST /internal/secrets/use`): a service the project granted a secret to either
+ signs a message with it (`sign`, HMAC-SHA256; the value never leaves Network) or receives the value for an https
+ origin the grant lists (`reveal`). `network.secret-use-request@1` and `network.secret-use-result@1` refuse a sign
+ without a message, a reveal without an origin, and either one mixed with the other's field.
+ - Listed in Network's manifest. Fixtures: valid signing and reveal grants, sign and reveal requests and results;
+ invalid a secret with its value, an upper-case name, an http origin, and mixed or missing fields.
+
## 0.176.1 — 2026-10-15
## 0.176.1 — 2026-10-15
- **`media.object.s3`** lists CopyObject and UploadPartCopy (Media#113): server-side copies within the key's environment,
- **`media.object.s3`** lists CopyObject and UploadPartCopy (Media#113): server-side copies within the key's environment,
@@ -2883,6 +2883,36 @@
@@ -2883,6 +2883,36 @@
"status": "active",
"status": "active",
"adr": "ADR-014"
"adr": "ADR-014"
},
},
+ {
+ "id": "network.project-secret",
+ "version": "1.0.0",
+ "owner": "network",
+ "schema": "network/project-secret.v1.json",
+ "visibility": "first-party",
+ "compatibility": "backward",
+ "status": "active",
+ "adr": "ADR-056"
+ },
+ {
+ "id": "network.secret-use-request",
+ "version": "1.0.0",
+ "owner": "network",
+ "schema": "network/secret-use-request.v1.json",
+ "visibility": "first-party",
+ "compatibility": "backward",
+ "status": "active",
+ "adr": "ADR-056"
+ },
+ {
+ "id": "network.secret-use-result",
+ "version": "1.0.0",
+ "owner": "network",
+ "schema": "network/secret-use-result.v1.json",
+ "visibility": "first-party",
+ "compatibility": "backward",
+ "status": "active",
+ "adr": "ADR-056"
+ },
{
{
"id": "network.status-incident",
"id": "network.status-incident",
"version": "1.0.0",
"version": "1.0.0",
new file mode 100644
new file mode 100644
@@ -0,0 +1,37 @@
@@ -0,0 +1,37 @@
+{
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
+ "$id": "https://openvibe.network/contracts/network/project-secret.v1.json",
+ "title": "ProjectSecret",
+ "description": "network.project-secret@1 (ADR-056): one project secret as OpenVibe.Network shows it to the project's members and staff — its name, environment, version, a keyed fingerprint and its grants. Never the value: a secret is written once and used by name (sign or reveal through network.secret.use).",
+ "type": "object",
+ "required": ["project_id", "environment", "name", "version", "fingerprint", "grants", "created_at", "created_by", "updated_at", "updated_by"],
+ "additionalProperties": false,
+ "$defs": {
+ "subject": { "type": "string", "pattern": "^usr_[0-9A-HJKMNP-TV-Z]{26}$" },
+ "grant": {
+ "type": "object",
+ "required": ["service", "purposes", "origins", "created_at", "created_by", "last_used_at"],
+ "additionalProperties": false,
+ "properties": {
+ "service": { "type": "string", "pattern": "^[a-z][a-z0-9-]{1,39}$", "description": "The service id the secret is granted to (its token's svc:<id>)." },
+ "purposes": { "type": "array", "minItems": 1, "maxItems": 2, "uniqueItems": true, "items": { "enum": ["sign", "reveal"] } },
+ "origins": { "type": "array", "maxItems": 10, "uniqueItems": true, "items": { "type": "string", "pattern": "^https://[a-z0-9.-]+(:[0-9]{1,5})?$" }, "description": "The https origins the value may be revealed for (reveal only; empty for sign)." },
+ "created_at": { "type": "string", "format": "date-time" },
+ "created_by": { "$ref": "#/$defs/subject" },
+ "last_used_at": { "type": ["string", "null"], "format": "date-time" }
+ }
+ }
+ },
+ "properties": {
+ "project_id": { "type": "string", "pattern": "^prj_[0-9A-HJKMNP-TV-Z]{26}$" },
+ "environment": { "enum": ["sandbox", "production"] },
+ "name": { "type": "string", "pattern": "^[a-z][a-z0-9_-]{0,63}$" },
+ "version": { "type": "integer", "minimum": 1, "description": "One more each time the value is set again." },
+ "fingerprint": { "type": "string", "pattern": "^[0-9a-f]{12}$", "description": "A keyed hash of the value: equal values have equal fingerprints, and it reveals nothing else." },
+ "grants": { "type": "array", "maxItems": 20, "items": { "$ref": "#/$defs/grant" } },
+ "created_at": { "type": "string", "format": "date-time" },
+ "created_by": { "$ref": "#/$defs/subject" },
+ "updated_at": { "type": "string", "format": "date-time" },
+ "updated_by": { "$ref": "#/$defs/subject" }
+ }
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1,21 @@
@@ -0,0 +1,21 @@
+{
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
+ "$id": "https://openvibe.network/contracts/network/secret-use-request.v1.json",
+ "title": "SecretUseRequest",
+ "description": "network.secret-use-request@1 (ADR-056): what a first-party service sends to POST /internal/secrets/use with network.secret.use. sign asks for HMAC-SHA256 of message under the secret (the value never leaves Network); reveal asks for the value, to send to origin. Either needs a grant of that secret to the calling service for that purpose (and origin).",
+ "type": "object",
+ "required": ["project_id", "environment", "name", "purpose"],
+ "additionalProperties": false,
+ "properties": {
+ "project_id": { "type": "string", "pattern": "^prj_[0-9A-HJKMNP-TV-Z]{26}$" },
+ "environment": { "enum": ["sandbox", "production"] },
+ "name": { "type": "string", "pattern": "^[a-z][a-z0-9_-]{0,63}$" },
+ "purpose": { "enum": ["sign", "reveal"] },
+ "message": { "type": "string", "maxLength": 1048576, "description": "sign: the exact text to sign (for a webhook delivery, \"<timestamp>.<raw body>\"). Not allowed with reveal." },
+ "origin": { "type": "string", "pattern": "^https://[a-z0-9.-]+(:[0-9]{1,5})?$", "description": "reveal: the https origin the value will be sent to; the grant must list it. Not allowed with sign." }
+ },
+ "allOf": [
+ { "if": { "properties": { "purpose": { "const": "sign" } } }, "then": { "required": ["message"], "not": { "required": ["origin"] } } },
+ { "if": { "properties": { "purpose": { "const": "reveal" } } }, "then": { "required": ["origin"], "not": { "required": ["message"] } } }
+ ]
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1,20 @@
@@ -0,0 +1,20 @@
+{
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
+ "$id": "https://openvibe.network/contracts/network/secret-use-result.v1.json",
+ "title": "SecretUseResult",
+ "description": "network.secret-use-result@1 (ADR-056): POST /internal/secrets/use's answer — the secret's name and version with the HMAC-SHA256 signature (sign) or the value (reveal). Sent with Cache-Control: no-store; a caller keeps a revealed value only as long as the request it is for.",
+ "type": "object",
+ "required": ["name", "version", "purpose"],
+ "additionalProperties": false,
+ "properties": {
+ "name": { "type": "string", "pattern": "^[a-z][a-z0-9_-]{0,63}$" },
+ "version": { "type": "integer", "minimum": 1 },
+ "purpose": { "enum": ["sign", "reveal"] },
+ "signature": { "type": "string", "pattern": "^[0-9a-f]{64}$", "description": "sign: the lowercase hex HMAC-SHA256 of the message under the secret." },
+ "value": { "type": "string", "minLength": 1, "maxLength": 8192, "description": "reveal: the value." }
+ },
+ "allOf": [
+ { "if": { "properties": { "purpose": { "const": "sign" } } }, "then": { "required": ["signature"], "not": { "required": ["value"] } } },
+ { "if": { "properties": { "purpose": { "const": "reveal" } } }, "then": { "required": ["value"], "not": { "required": ["signature"] } } }
+ ]
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1,52 @@
@@ -0,0 +1,52 @@
+# ADR-056: Project secrets — written once, used by name, never read back
+
+**Status:** Accepted 2026-10-15 (plan T13/T17: the "project secret store" that `secret_ref` waits on). Amends ADR-014
+(Network owns projects and credentials) with one more thing a project holds, and ADR-044 §7 (Actor webhooks name a
+project secret by `secret_ref`).
+
+## Context
+
+- Services that act for a project need secrets the project's people choose: the key that signs Actor's webhook
+ deliveries to their server (ADR-044 names `secret_ref` for it), a token Watch sends when it checks their private API,
+ the password of their ONVIF camera (ADR-043).
+- Today each of these is an operator's environment variable with a hand-written grant (Watch's `WATCH_SECRET_GRANTS`,
+ Bot's `BOT_ONVIF_CAMERAS` references) or a value the service makes and shows once (Actor's per-task
+ `webhook_secret`). A project cannot bring its own, and nothing is managed in one place.
+- Network already owns what a project is, who its members are, its credentials and its audit (ADR-014).
+
+## Decision
+
+1. **Network keeps project secrets**, per project and environment (`sandbox`, `production`), each under a name
+ (`^[a-z][a-z0-9_-]{0,63}$`). A value is 1 to 8192 bytes of UTF-8, at most 50 secrets per project environment.
+2. **Write-only.** A project admin or owner sets a value (`PUT /api/v1/projects/:project/secrets/:env/:name`); setting it
+ again replaces it and adds one to its `version`. No API returns a value to a person, staff included. Members
+ (viewer and up) and staff read the metadata only: name, environment, version, a fingerprint, the grants, who set it
+ and when (`network.project-secret@1`). The fingerprint is a keyed hash, so it tells two values apart without
+ revealing either.
+3. **Encrypted at rest** with AES-256-GCM under a key held only in Network's environment (`NETWORK_SECRETS_KEY`, 32 random
+ bytes). Each row carries its key id, so the key can be rotated. Without the key the feature is off (503
+ `secrets.unavailable`), never plaintext.
+4. **A name is not a capability.** A service uses a secret only when the project granted that secret to that service:
+ `PUT …/:name/grants/:service { purposes, origins }`, admin or owner. There are two purposes:
+ - `sign`: Network computes HMAC-SHA256 of a message under the secret and answers the signature. The value never
+ leaves Network. This is how webhook deliveries are signed.
+ - `reveal`: Network answers the value, only to the granted service and only for an `origin` the grant lists (an
+ https origin the service will send it to). This is for credentials another system must receive as they are.
+5. **One first-party capability, `network.secret.use`**, on `POST /internal/secrets/use`
+ (`network.secret-use-request@1` → `network.secret-use-result@1`). The caller is the service in its token
+ (`svc:<id>`). A missing secret, a missing grant, a purpose or origin the grant does not list, and an archived project
+ all answer 404 `secret.not_found`, so a guess learns nothing.
+6. **Audit.** Every value set, deletion and grant change is a `dev_audit` row, and so is the first use of each secret per
+ service, purpose and UTC day. A grant records when it was last used. Values and messages are never written anywhere
+ but the encrypted column.
+7. **A project archived is crypto-shredded:** its secrets' ciphertexts are deleted when it is archived, and its metadata
+ stays in its audit.
+
+## Consequences
+
+- Actor's `secret_ref` names a secret in the task's project, granted to `actor` for `sign`. Watch, Bot and others follow
+ the same rule, and their operator-held grants become unnecessary for project resources.
+- The Services console shows and edits secrets through these routes with the person's own token, as it does apps and
+ grants. Services stores nothing.
+- A person without a project has no secret store. Personal resources keep their service's own secrets (Actor's per-task
+ webhook secret).
@@ -49,3 +49,4 @@ Platform-wide decisions from the OpenVibe development roadmap (section 10). Each
@@ -49,3 +49,4 @@ Platform-wide decisions from the OpenVibe development roadmap (section 10). Each
| [ADR-053](ADR-053-website-host-boundary.md) | The Website/Host boundary: OpenVibe.Website owns authoring (projects, pages, revisions, builds, Media asset pointers and intended domains) and OpenVibe.Host owns site, deploy, activation, domain binding/verification/TLS and serving; Website keeps no duplicate `host_sites`/`host_deploys` rows and calls Host's routes; a Website build is not a Host deploy; Website composes Host + Codes + Actor + Run + Media and is not OpenVibe.Sites | Proposed 2026-10-05 (plan T19), for the owner's review |
| [ADR-053](ADR-053-website-host-boundary.md) | The Website/Host boundary: OpenVibe.Website owns authoring (projects, pages, revisions, builds, Media asset pointers and intended domains) and OpenVibe.Host owns site, deploy, activation, domain binding/verification/TLS and serving; Website keeps no duplicate `host_sites`/`host_deploys` rows and calls Host's routes; a Website build is not a Host deploy; Website composes Host + Codes + Actor + Run + Media and is not OpenVibe.Sites | Proposed 2026-10-05 (plan T19), for the owner's review |
| [ADR-054](ADR-054-inventory-authority.md) | The OpenVibe inventory: a new authority, OpenVibe.Inventory (`inventory`, `ov_inventory`), owns item kinds (contract + renderer per surface), definitions (`itd_`), instances (`inv_`), the equipped set and an append-only ledger; issuers grant within their namespace; no selling, buying, trading or conversion until a later money ADR (ADR-012/ADR-025); Live's cosmetics are the first kinds, migrated convert-verify-delete | Accepted 2026-10-09 (plan T21) |
| [ADR-054](ADR-054-inventory-authority.md) | The OpenVibe inventory: a new authority, OpenVibe.Inventory (`inventory`, `ov_inventory`), owns item kinds (contract + renderer per surface), definitions (`itd_`), instances (`inv_`), the equipped set and an append-only ledger; issuers grant within their namespace; no selling, buying, trading or conversion until a later money ADR (ADR-012/ADR-025); Live's cosmetics are the first kinds, migrated convert-verify-delete | Accepted 2026-10-09 (plan T21) |
| [ADR-055](ADR-055-inventory-money.md) | Money and the inventory, in phases: A primary sales (an issuer prices an item in Vibes, booked by Billing as an ENTITLEMENT with a creator share, or in OpenCoins as a loyalty shop with no payout); B gifting between people for giftable items (an ADR-012 rule 6 amendment); C trading and a market stay closed (ADR-025); never paid chance (no cases, crates, loot boxes) | Proposed 2026-10-09 (plan T21), for the owner's decision |
| [ADR-055](ADR-055-inventory-money.md) | Money and the inventory, in phases: A primary sales (an issuer prices an item in Vibes, booked by Billing as an ENTITLEMENT with a creator share, or in OpenCoins as a loyalty shop with no payout); B gifting between people for giftable items (an ADR-012 rule 6 amendment); C trading and a market stay closed (ADR-025); never paid chance (no cases, crates, loot boxes) | Proposed 2026-10-09 (plan T21), for the owner's decision |
+| [ADR-056](ADR-056-project-secrets.md) | Project secrets: OpenVibe.Network keeps them per project and environment, write-only (no API returns a value to a person), AES-256-GCM under `NETWORK_SECRETS_KEY`; a service uses one only when the project granted it, to `sign` (HMAC, the value never leaves Network) or to `reveal` it for a listed https origin, through first-party `network.secret.use`; archiving a project shreds its secrets | Accepted 2026-10-15 (plan T13/T17) |
new file mode 100644
new file mode 100644
@@ -0,0 +1,25 @@
@@ -0,0 +1,25 @@
+{
+ "project_id": "prj_01M4XE52PGJDVR1KZ1AG9VYW3Q",
+ "environment": "production",
+ "name": "webhook-signing",
+ "version": 2,
+ "fingerprint": "3fa9c1d0be72",
+ "grants": [
+ {
+ "service": "watch",
+ "purposes": [
+ "reveal"
+ ],
+ "origins": [
+ "http://api.example.com"
+ ],
+ "created_at": "2026-10-15T05:00:00Z",
+ "created_by": "usr_01M3JCFXCJZ2NS0732AKPCVVHR",
+ "last_used_at": null
+ }
+ ],
+ "created_at": "2026-10-15T04:58:00Z",
+ "created_by": "usr_01M3JCFXCJZ2NS0732AKPCVVHR",
+ "updated_at": "2026-10-15T05:10:00Z",
+ "updated_by": "usr_01M3JCFXCJZ2NS0732AKPCVVHR"
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1,23 @@
@@ -0,0 +1,23 @@
+{
+ "project_id": "prj_01M4XE52PGJDVR1KZ1AG9VYW3Q",
+ "environment": "production",
+ "name": "Webhook",
+ "version": 2,
+ "fingerprint": "3fa9c1d0be72",
+ "grants": [
+ {
+ "service": "actor",
+ "purposes": [
+ "sign"
+ ],
+ "origins": [],
+ "created_at": "2026-10-15T05:00:00Z",
+ "created_by": "usr_01M3JCFXCJZ2NS0732AKPCVVHR",
+ "last_used_at": null
+ }
+ ],
+ "created_at": "2026-10-15T04:58:00Z",
+ "created_by": "usr_01M3JCFXCJZ2NS0732AKPCVVHR",
+ "updated_at": "2026-10-15T05:10:00Z",
+ "updated_by": "usr_01M3JCFXCJZ2NS0732AKPCVVHR"
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1,24 @@
@@ -0,0 +1,24 @@
+{
+ "project_id": "prj_01M4XE52PGJDVR1KZ1AG9VYW3Q",
+ "environment": "production",
+ "name": "webhook-signing",
+ "version": 2,
+ "fingerprint": "3fa9c1d0be72",
+ "grants": [
+ {
+ "service": "actor",
+ "purposes": [
+ "sign"
+ ],
+ "origins": [],
+ "created_at": "2026-10-15T05:00:00Z",
+ "created_by": "usr_01M3JCFXCJZ2NS0732AKPCVVHR",
+ "last_used_at": null
+ }
+ ],
+ "created_at": "2026-10-15T04:58:00Z",
+ "created_by": "usr_01M3JCFXCJZ2NS0732AKPCVVHR",
+ "updated_at": "2026-10-15T05:10:00Z",
+ "updated_by": "usr_01M3JCFXCJZ2NS0732AKPCVVHR",
+ "value": "hunter2"
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1,25 @@
@@ -0,0 +1,25 @@
+{
+ "project_id": "prj_01M4XE52PGJDVR1KZ1AG9VYW3Q",
+ "environment": "production",
+ "name": "api_token",
+ "version": 1,
+ "fingerprint": "3fa9c1d0be72",
+ "grants": [
+ {
+ "service": "watch",
+ "purposes": [
+ "reveal"
+ ],
+ "origins": [
+ "https://api.example.com"
+ ],
+ "created_at": "2026-10-15T05:00:00Z",
+ "created_by": "usr_01M3JCFXCJZ2NS0732AKPCVVHR",
+ "last_used_at": "2026-10-15T05:30:00Z"
+ }
+ ],
+ "created_at": "2026-10-15T04:58:00Z",
+ "created_by": "usr_01M3JCFXCJZ2NS0732AKPCVVHR",
+ "updated_at": "2026-10-15T05:10:00Z",
+ "updated_by": "usr_01M3JCFXCJZ2NS0732AKPCVVHR"
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1,23 @@
@@ -0,0 +1,23 @@
+{
+ "project_id": "prj_01M4XE52PGJDVR1KZ1AG9VYW3Q",
+ "environment": "production",
+ "name": "webhook-signing",
+ "version": 2,
+ "fingerprint": "3fa9c1d0be72",
+ "grants": [
+ {
+ "service": "actor",
+ "purposes": [
+ "sign"
+ ],
+ "origins": [],
+ "created_at": "2026-10-15T05:00:00Z",
+ "created_by": "usr_01M3JCFXCJZ2NS0732AKPCVVHR",
+ "last_used_at": null
+ }
+ ],
+ "created_at": "2026-10-15T04:58:00Z",
+ "created_by": "usr_01M3JCFXCJZ2NS0732AKPCVVHR",
+ "updated_at": "2026-10-15T05:10:00Z",
+ "updated_by": "usr_01M3JCFXCJZ2NS0732AKPCVVHR"
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1,8 @@
@@ -0,0 +1,8 @@
+{
+ "project_id": "prj_01M4XE52PGJDVR1KZ1AG9VYW3Q",
+ "environment": "production",
+ "name": "api_token",
+ "purpose": "reveal",
+ "origin": "https://api.example.com",
+ "message": "x"
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1,6 @@
@@ -0,0 +1,6 @@
+{
+ "project_id": "prj_01M4XE52PGJDVR1KZ1AG9VYW3Q",
+ "environment": "production",
+ "name": "api_token",
+ "purpose": "reveal"
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1,6 @@
@@ -0,0 +1,6 @@
+{
+ "project_id": "prj_01M4XE52PGJDVR1KZ1AG9VYW3Q",
+ "environment": "production",
+ "name": "webhook-signing",
+ "purpose": "sign"
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1,7 @@
@@ -0,0 +1,7 @@
+{
+ "project_id": "prj_01M4XE52PGJDVR1KZ1AG9VYW3Q",
+ "environment": "sandbox",
+ "name": "api_token",
+ "purpose": "reveal",
+ "origin": "https://api.example.com"
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1,7 @@
@@ -0,0 +1,7 @@
+{
+ "project_id": "prj_01M4XE52PGJDVR1KZ1AG9VYW3Q",
+ "environment": "production",
+ "name": "webhook-signing",
+ "purpose": "sign",
+ "message": "1760504400.{\"state\":\"succeeded\"}"
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1,6 @@
@@ -0,0 +1,6 @@
+{
+ "name": "webhook-signing",
+ "version": 2,
+ "purpose": "sign",
+ "signature": "abc"
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1,7 @@
@@ -0,0 +1,7 @@
+{
+ "name": "webhook-signing",
+ "version": 2,
+ "purpose": "sign",
+ "signature": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+ "value": "x"
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1,6 @@
@@ -0,0 +1,6 @@
+{
+ "name": "webhook-signing",
+ "version": 2,
+ "purpose": "sign",
+ "signature": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1,6 @@
@@ -0,0 +1,6 @@
+{
+ "name": "api_token",
+ "version": 1,
+ "purpose": "reveal",
+ "value": "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk"
+}
@@ -29865,6 +29865,315 @@
@@ -29865,6 +29865,315 @@
}
}
}
}
},
},
+ "network.project-secret": {
+ "version": "1.0.0",
+ "owner": "network",
+ "status": "active",
+ "schema": {
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
+ "$id": "https://openvibe.network/contracts/network/project-secret.v1.json",
+ "title": "ProjectSecret",
+ "description": "network.project-secret@1 (ADR-056): one project secret as OpenVibe.Network shows it to the project's members and staff — its name, environment, version, a keyed fingerprint and its grants. Never the value: a secret is written once and used by name (sign or reveal through network.secret.use).",
+ "type": "object",
+ "required": [
+ "project_id",
+ "environment",
+ "name",
+ "version",
+ "fingerprint",
+ "grants",
+ "created_at",
+ "created_by",
+ "updated_at",
+ "updated_by"
+ ],
+ "additionalProperties": false,
+ "$defs": {
+ "subject": {
+ "type": "string",
+ "pattern": "^usr_[0-9A-HJKMNP-TV-Z]{26}$"
+ },
+ "grant": {
+ "type": "object",
+ "required": [
+ "service",
+ "purposes",
+ "origins",
+ "created_at",
+ "created_by",
+ "last_used_at"
+ ],
+ "additionalProperties": false,
+ "properties": {
+ "service": {
+ "type": "string",
+ "pattern": "^[a-z][a-z0-9-]{1,39}$",
+ "description": "The service id the secret is granted to (its token's svc:<id>)."
+ },
+ "purposes": {
+ "type": "array",
+ "minItems": 1,
+ "maxItems": 2,
+ "uniqueItems": true,
+ "items": {
+ "enum": [
+ "sign",
+ "reveal"
+ ]
+ }
+ },
+ "origins": {
+ "type": "array",
+ "maxItems": 10,
+ "uniqueItems": true,
+ "items": {
+ "type": "string",
+ "pattern": "^https://[a-z0-9.-]+(:[0-9]{1,5})?$"
+ },
+ "description": "The https origins the value may be revealed for (reveal only; empty for sign)."
+ },
+ "created_at": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "created_by": {
+ "$ref": "#/$defs/subject"
+ },
+ "last_used_at": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ }
+ }
+ }
+ },
+ "properties": {
+ "project_id": {
+ "type": "string",
+ "pattern": "^prj_[0-9A-HJKMNP-TV-Z]{26}$"
+ },
+ "environment": {
+ "enum": [
+ "sandbox",
+ "production"
+ ]
+ },
+ "name": {
+ "type": "string",
+ "pattern": "^[a-z][a-z0-9_-]{0,63}$"
+ },
+ "version": {
+ "type": "integer",
+ "minimum": 1,
+ "description": "One more each time the value is set again."
+ },
+ "fingerprint": {
+ "type": "string",
+ "pattern": "^[0-9a-f]{12}$",
+ "description": "A keyed hash of the value: equal values have equal fingerprints, and it reveals nothing else."
+ },
+ "grants": {
+ "type": "array",
+ "maxItems": 20,
+ "items": {
+ "$ref": "#/$defs/grant"
+ }
+ },
+ "created_at": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "created_by": {
+ "$ref": "#/$defs/subject"
+ },
+ "updated_at": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "updated_by": {
+ "$ref": "#/$defs/subject"
+ }
+ }
+ }
+ },
+ "network.secret-use-request": {
+ "version": "1.0.0",
+ "owner": "network",
+ "status": "active",
+ "schema": {
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
+ "$id": "https://openvibe.network/contracts/network/secret-use-request.v1.json",
+ "title": "SecretUseRequest",
+ "description": "network.secret-use-request@1 (ADR-056): what a first-party service sends to POST /internal/secrets/use with network.secret.use. sign asks for HMAC-SHA256 of message under the secret (the value never leaves Network); reveal asks for the value, to send to origin. Either needs a grant of that secret to the calling service for that purpose (and origin).",
+ "type": "object",
+ "required": [
+ "project_id",
+ "environment",
+ "name",
+ "purpose"
+ ],
+ "additionalProperties": false,
+ "properties": {
+ "project_id": {
+ "type": "string",
+ "pattern": "^prj_[0-9A-HJKMNP-TV-Z]{26}$"
+ },
+ "environment": {
+ "enum": [
+ "sandbox",
+ "production"
+ ]
+ },
+ "name": {
+ "type": "string",
+ "pattern": "^[a-z][a-z0-9_-]{0,63}$"
+ },
+ "purpose": {
+ "enum": [
+ "sign",
+ "reveal"
+ ]
+ },
+ "message": {
+ "type": "string",
+ "maxLength": 1048576,
+ "description": "sign: the exact text to sign (for a webhook delivery, \"<timestamp>.<raw body>\"). Not allowed with reveal."
+ },
+ "origin": {
+ "type": "string",
+ "pattern": "^https://[a-z0-9.-]+(:[0-9]{1,5})?$",
+ "description": "reveal: the https origin the value will be sent to; the grant must list it. Not allowed with sign."
+ }
+ },
+ "allOf": [
+ {
+ "if": {
+ "properties": {
+ "purpose": {
+ "const": "sign"
+ }
+ }
+ },
+ "then": {
+ "required": [
+ "message"
+ ],
+ "not": {
+ "required": [
+ "origin"
+ ]
+ }
+ }
+ },
+ {
+ "if": {
+ "properties": {
+ "purpose": {
+ "const": "reveal"
+ }
+ }
+ },
+ "then": {
+ "required": [
+ "origin"
+ ],
+ "not": {
+ "required": [
+ "message"
+ ]
+ }
+ }
+ }
+ ]
+ }
+ },
+ "network.secret-use-result": {
+ "version": "1.0.0",
+ "owner": "network",
+ "status": "active",
+ "schema": {
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
+ "$id": "https://openvibe.network/contracts/network/secret-use-result.v1.json",
+ "title": "SecretUseResult",
+ "description": "network.secret-use-result@1 (ADR-056): POST /internal/secrets/use's answer — the secret's name and version with the HMAC-SHA256 signature (sign) or the value (reveal). Sent with Cache-Control: no-store; a caller keeps a revealed value only as long as the request it is for.",
+ "type": "object",
+ "required": [
+ "name",
+ "version",
+ "purpose"
+ ],
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": "string",
+ "pattern": "^[a-z][a-z0-9_-]{0,63}$"
+ },
+ "version": {
+ "type": "integer",
+ "minimum": 1
+ },
+ "purpose": {
+ "enum": [
+ "sign",
+ "reveal"
+ ]
+ },
+ "signature": {
+ "type": "string",
+ "pattern": "^[0-9a-f]{64}$",
+ "description": "sign: the lowercase hex HMAC-SHA256 of the message under the secret."
+ },
+ "value": {
+ "type": "string",
+ "minLength": 1,
+ "maxLength": 8192,
+ "description": "reveal: the value."
+ }
+ },
+ "allOf": [
+ {
+ "if": {
+ "properties": {
+ "purpose": {
+ "const": "sign"
+ }
+ }
+ },
+ "then": {
+ "required": [
+ "signature"
+ ],
+ "not": {
+ "required": [
+ "value"
+ ]
+ }
+ }
+ },
+ {
+ "if": {
+ "properties": {
+ "purpose": {
+ "const": "reveal"
+ }
+ }
+ },
+ "then": {
+ "required": [
+ "value"
+ ],
+ "not": {
+ "required": [
+ "signature"
+ ]
+ }
+ }
+ }
+ ]
+ }
+ },
"network.status-incident": {
"network.status-incident": {
"version": "1.0.0",
"version": "1.0.0",
"owner": "network",
"owner": "network",
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Actor API",
"title": "OpenVibe.Actor API",
- "version": "0.176.1",
- "description": "Routes of OpenVibe.Actor as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.177.0",
+ "description": "Routes of OpenVibe.Actor as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.AI API",
"title": "OpenVibe.AI API",
- "version": "0.176.1",
- "description": "Routes of OpenVibe.AI as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.177.0",
+ "description": "Routes of OpenVibe.AI as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Billing API",
"title": "OpenVibe.Billing API",
- "version": "0.176.1",
- "description": "Routes of OpenVibe.Billing as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.177.0",
+ "description": "Routes of OpenVibe.Billing as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Blog API",
"title": "OpenVibe.Blog API",
- "version": "0.176.1",
- "description": "Routes of OpenVibe.Blog as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.177.0",
+ "description": "Routes of OpenVibe.Blog as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Bot API",
"title": "OpenVibe.Bot API",
- "version": "0.176.1",
- "description": "Routes of OpenVibe.Bot as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.177.0",
+ "description": "Routes of OpenVibe.Bot as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Chat API",
"title": "OpenVibe.Chat API",
- "version": "0.176.1",
- "description": "Routes of OpenVibe.Chat as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.177.0",
+ "description": "Routes of OpenVibe.Chat as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Codes API",
"title": "OpenVibe.Codes API",
- "version": "0.176.1",
- "description": "Routes of OpenVibe.Codes as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.177.0",
+ "description": "Routes of OpenVibe.Codes as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Community API",
"title": "OpenVibe.Community API",
- "version": "0.176.1",
- "description": "Routes of OpenVibe.Community as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.177.0",
+ "description": "Routes of OpenVibe.Community as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Coupons API",
"title": "OpenVibe.Coupons API",
- "version": "0.176.1",
- "description": "Routes of OpenVibe.Coupons as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.177.0",
+ "description": "Routes of OpenVibe.Coupons as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Deals API",
"title": "OpenVibe.Deals API",
- "version": "0.176.1",
- "description": "Routes of OpenVibe.Deals as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.177.0",
+ "description": "Routes of OpenVibe.Deals as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Events API",
"title": "OpenVibe.Events API",
- "version": "0.176.1",
- "description": "Routes of OpenVibe.Events as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.177.0",
+ "description": "Routes of OpenVibe.Events as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Food API",
"title": "OpenVibe.Food API",
- "version": "0.176.1",
- "description": "Routes of OpenVibe.Food as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.177.0",
+ "description": "Routes of OpenVibe.Food as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Games API",
"title": "OpenVibe.Games API",
- "version": "0.176.1",
- "description": "Routes of OpenVibe.Games as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.177.0",
+ "description": "Routes of OpenVibe.Games as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Host API",
"title": "OpenVibe.Host API",
- "version": "0.176.1",
- "description": "Routes of OpenVibe.Host as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.177.0",
+ "description": "Routes of OpenVibe.Host as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -131,8 +131,8 @@
@@ -131,8 +131,8 @@
"service": "network",
"service": "network",
"name": "OpenVibe.Network",
"name": "OpenVibe.Network",
"origin": "https://openvibe.network",
"origin": "https://openvibe.network",
- "operations": 40,
- "capabilities": 28
+ "operations": 41,
+ "capabilities": 29
},
},
{
{
"service": "news",
"service": "news",
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Inventory API",
"title": "OpenVibe.Inventory API",
- "version": "0.176.1",
- "description": "Routes of OpenVibe.Inventory as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.177.0",
+ "description": "Routes of OpenVibe.Inventory as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Live API",
"title": "OpenVibe.Live API",
- "version": "0.176.1",
- "description": "Routes of OpenVibe.Live as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.177.0",
+ "description": "Routes of OpenVibe.Live as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.MediaHub API",
"title": "OpenVibe.MediaHub API",
- "version": "0.176.1",
- "description": "Routes of OpenVibe.MediaHub as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.177.0",
+ "description": "Routes of OpenVibe.MediaHub as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Media API",
"title": "OpenVibe.Media API",
- "version": "0.176.1",
- "description": "Routes of OpenVibe.Media as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.177.0",
+ "description": "Routes of OpenVibe.Media as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Network API",
"title": "OpenVibe.Network API",
- "version": "0.176.1",
- "description": "Routes of OpenVibe.Network as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.177.0",
+ "description": "Routes of OpenVibe.Network as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -2217,6 +2217,62 @@
@@ -2217,6 +2217,62 @@
}
}
}
}
},
},
+ "/internal/secrets/use": {
+ "post": {
+ "operationId": "post_internal_secrets_use",
+ "summary": "Sign with, or reveal, a project secret the project granted to the calling service (ADR-056): sign answers HMAC-SHA256 of a message and never the value; reveal answers the value only for an origin the ",
+ "description": "**network.secret.use** (first-party): Sign with, or reveal, a project secret the project granted to the calling service (ADR-056): sign answers HMAC-SHA256 of a message and never the value; reveal answers the value only for an origin the grant lists.",
+ "tags": [
+ "network.secret"
+ ],
+ "x-openvibe-capabilities": [
+ "network.secret.use"
+ ],
+ "x-openvibe-visibility": [
+ "first-party"
+ ],
+ "x-openvibe-quota-class": "secrets-use",
+ "security": [
+ {
+ "openvibeToken": [
+ "network.secret.use"
+ ]
+ }
+ ],
+ "requestBody": {
+ "required": false,
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/network.secret-use-request.v1"
+ }
+ }
+ }
+ },
+ "responses": {
+ "2XX": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/network.secret-use-result.v1"
+ }
+ }
+ }
+ },
+ "default": {
+ "description": "An error (RFC 9457 problem details)",
+ "content": {
+ "application/problem+json": {
+ "schema": {
+ "$ref": "#/components/schemas/errors.problem.v1"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
"/internal/url-registry/resolved": {
"/internal/url-registry/resolved": {
"get": {
"get": {
"operationId": "get_internal_url_registry_resolved",
"operationId": "get_internal_url_registry_resolved",
@@ -4540,6 +4596,168 @@
@@ -4540,6 +4596,168 @@
}
}
}
}
},
},
+ "network.secret-use-request.v1": {
+ "title": "SecretUseRequest",
+ "description": "network.secret-use-request@1 (ADR-056): what a first-party service sends to POST /internal/secrets/use with network.secret.use. sign asks for HMAC-SHA256 of message under the secret (the value never leaves Network); reveal asks for the value, to send to origin. Either needs a grant of that secret to the calling service for that purpose (and origin).",
+ "type": "object",
+ "required": [
+ "project_id",
+ "environment",
+ "name",
+ "purpose"
+ ],
+ "additionalProperties": false,
+ "properties": {
+ "project_id": {
+ "type": "string",
+ "pattern": "^prj_[0-9A-HJKMNP-TV-Z]{26}$"
+ },
+ "environment": {
+ "enum": [
+ "sandbox",
+ "production"
+ ]
+ },
+ "name": {
+ "type": "string",
+ "pattern": "^[a-z][a-z0-9_-]{0,63}$"
+ },
+ "purpose": {
+ "enum": [
+ "sign",
+ "reveal"
+ ]
+ },
+ "message": {
+ "type": "string",
+ "maxLength": 1048576,
+ "description": "sign: the exact text to sign (for a webhook delivery, \"<timestamp>.<raw body>\"). Not allowed with reveal."
+ },
+ "origin": {
+ "type": "string",
+ "pattern": "^https://[a-z0-9.-]+(:[0-9]{1,5})?$",
+ "description": "reveal: the https origin the value will be sent to; the grant must list it. Not allowed with sign."
+ }
+ },
+ "allOf": [
+ {
+ "if": {
+ "properties": {
+ "purpose": {
+ "const": "sign"
+ }
+ }
+ },
+ "then": {
+ "required": [
+ "message"
+ ],
+ "not": {
+ "required": [
+ "origin"
+ ]
+ }
+ }
+ },
+ {
+ "if": {
+ "properties": {
+ "purpose": {
+ "const": "reveal"
+ }
+ }
+ },
+ "then": {
+ "required": [
+ "origin"
+ ],
+ "not": {
+ "required": [
+ "message"
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "network.secret-use-result.v1": {
+ "title": "SecretUseResult",
+ "description": "network.secret-use-result@1 (ADR-056): POST /internal/secrets/use's answer — the secret's name and version with the HMAC-SHA256 signature (sign) or the value (reveal). Sent with Cache-Control: no-store; a caller keeps a revealed value only as long as the request it is for.",
+ "type": "object",
+ "required": [
+ "name",
+ "version",
+ "purpose"
+ ],
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": "string",
+ "pattern": "^[a-z][a-z0-9_-]{0,63}$"
+ },
+ "version": {
+ "type": "integer",
+ "minimum": 1
+ },
+ "purpose": {
+ "enum": [
+ "sign",
+ "reveal"
+ ]
+ },
+ "signature": {
+ "type": "string",
+ "pattern": "^[0-9a-f]{64}$",
+ "description": "sign: the lowercase hex HMAC-SHA256 of the message under the secret."
+ },
+ "value": {
+ "type": "string",
+ "minLength": 1,
+ "maxLength": 8192,
+ "description": "reveal: the value."
+ }
+ },
+ "allOf": [
+ {
+ "if": {
+ "properties": {
+ "purpose": {
+ "const": "sign"
+ }
+ }
+ },
+ "then": {
+ "required": [
+ "signature"
+ ],
+ "not": {
+ "required": [
+ "value"
+ ]
+ }
+ }
+ },
+ {
+ "if": {
+ "properties": {
+ "purpose": {
+ "const": "reveal"
+ }
+ }
+ },
+ "then": {
+ "required": [
+ "value"
+ ],
+ "not": {
+ "required": [
+ "signature"
+ ]
+ }
+ }
+ }
+ ]
+ },
"network.staff-list-result.v1": {
"network.staff-list-result.v1": {
"title": "NetworkStaffListResult",
"title": "NetworkStaffListResult",
"description": "network.staff-list-result@1: the answer of network.staff.read on OpenVibe.Network. GET /api/v1/staff/moderators[?service=chat|live|community|pastes|calls] (a service token holding network.staff.read, or a signed-in person holding staff.moderation.logs) → { service, staff }: the network's global moderators, admins and the owner who are not banned, with the staff capabilities their role holds in the contracts staff map; ?service keeps those holding the capability that moderates that service (another service name keeps those holding staff.content.moderate; an invalid value is ignored and answered as null). Answered with Cache-Control: private, no-store; a person without staff.moderation.logs gets 403 { error: forbidden }.",
"description": "network.staff-list-result@1: the answer of network.staff.read on OpenVibe.Network. GET /api/v1/staff/moderators[?service=chat|live|community|pastes|calls] (a service token holding network.staff.read, or a signed-in person holding staff.moderation.logs) → { service, staff }: the network's global moderators, admins and the owner who are not banned, with the staff capabilities their role holds in the contracts staff map; ?service keeps those holding the capability that moderates that service (another service name keeps those holding staff.content.moderate; an invalid value is ignored and answered as null). Answered with Cache-Control: private, no-store; a person without staff.moderation.logs gets 403 { error: forbidden }.",
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.News API",
"title": "OpenVibe.News API",
- "version": "0.176.1",
- "description": "Routes of OpenVibe.News as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.177.0",
+ "description": "Routes of OpenVibe.News as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenRestream API",
"title": "OpenRestream API",
- "version": "0.176.1",
- "description": "Routes of OpenRestream as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.177.0",
+ "description": "Routes of OpenRestream as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Play API",
"title": "OpenVibe.Play API",
- "version": "0.176.1",
- "description": "Routes of OpenVibe.Play as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.177.0",
+ "description": "Routes of OpenVibe.Play as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Reviews API",
"title": "OpenVibe.Reviews API",
- "version": "0.176.1",
- "description": "Routes of OpenVibe.Reviews as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.177.0",
+ "description": "Routes of OpenVibe.Reviews as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Run API",
"title": "OpenVibe.Run API",
- "version": "0.176.1",
- "description": "Routes of OpenVibe.Run as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.177.0",
+ "description": "Routes of OpenVibe.Run as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Search API",
"title": "OpenVibe.Search API",
- "version": "0.176.1",
- "description": "Routes of OpenVibe.Search as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.177.0",
+ "description": "Routes of OpenVibe.Search as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Services API",
"title": "OpenVibe.Services API",
- "version": "0.176.1",
- "description": "Routes of OpenVibe.Services as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.177.0",
+ "description": "Routes of OpenVibe.Services as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Sources API",
"title": "OpenVibe.Sources API",
- "version": "0.176.1",
- "description": "Routes of OpenVibe.Sources as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.177.0",
+ "description": "Routes of OpenVibe.Sources as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Space API",
"title": "OpenVibe.Space API",
- "version": "0.176.1",
- "description": "Routes of OpenVibe.Space as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.177.0",
+ "description": "Routes of OpenVibe.Space as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Tips API",
"title": "OpenVibe.Tips API",
- "version": "0.176.1",
- "description": "Routes of OpenVibe.Tips as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.177.0",
+ "description": "Routes of OpenVibe.Tips as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Tools API",
"title": "OpenVibe.Tools API",
- "version": "0.176.1",
- "description": "Routes of OpenVibe.Tools as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.177.0",
+ "description": "Routes of OpenVibe.Tools as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Trade API",
"title": "OpenVibe.Trade API",
- "version": "0.176.1",
- "description": "Routes of OpenVibe.Trade as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.177.0",
+ "description": "Routes of OpenVibe.Trade as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.VIP API",
"title": "OpenVibe.VIP API",
- "version": "0.176.1",
- "description": "Routes of OpenVibe.VIP as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.177.0",
+ "description": "Routes of OpenVibe.VIP as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Watch API",
"title": "OpenVibe.Watch API",
- "version": "0.176.1",
- "description": "Routes of OpenVibe.Watch as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.177.0",
+ "description": "Routes of OpenVibe.Watch as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Wiki API",
"title": "OpenVibe.Wiki API",
- "version": "0.176.1",
- "description": "Routes of OpenVibe.Wiki as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.177.0",
+ "description": "Routes of OpenVibe.Wiki as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Work API",
"title": "OpenVibe.Work API",
- "version": "0.176.1",
- "description": "Routes of OpenVibe.Work as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.177.0",
+ "description": "Routes of OpenVibe.Work as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Zone API",
"title": "OpenVibe.Zone API",
- "version": "0.176.1",
- "description": "Routes of OpenVibe.Zone as the OpenVibe contracts describe them (openvibe-contracts 0.176.1): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.177.0",
+ "description": "Routes of OpenVibe.Zone as the OpenVibe contracts describe them (openvibe-contracts 0.177.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -149739,6 +149739,6624 @@ export interface ProjectUsageResult {
@@ -149739,6 +149739,6624 @@ export interface ProjectUsageResult {
};
};
}
}
+/** [email protected] (owner: network) */
+/**
+ * network.project-secret@1 (ADR-056): one project secret as OpenVibe.Network shows it to the project's members and staff — its name, environment, version, a keyed fingerprint and its grants. Never the value: a secret is written once and used by name (sign or reveal through network.secret.use).
+ */
+export interface ProjectSecret {
+ project_id: string;
+ environment: "sandbox" | "production";
+ name: string;
+ /**
+ * One more each time the value is set again.
+ */
+ version: number;
+ /**
+ * A keyed hash of the value: equal values have equal fingerprints, and it reveals nothing else.
+ */
+ fingerprint: string;
+ /**
+ * @maxItems 20
+ */
+ grants:
+ | []
+ | [
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ }
+ ]
+ | [
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ }
+ ]
+ | [
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ }
+ ]
+ | [
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ }
+ ]
+ | [
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ }
+ ]
+ | [
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ }
+ ]
+ | [
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ }
+ ]
+ | [
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ }
+ ]
+ | [
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ }
+ ]
+ | [
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ }
+ ]
+ | [
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ }
+ ]
+ | [
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ }
+ ]
+ | [
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ }
+ ]
+ | [
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ }
+ ]
+ | [
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ }
+ ]
+ | [
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ }
+ ]
+ | [
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ }
+ ]
+ | [
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ }
+ ]
+ | [
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ }
+ ]
+ | [
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ },
+ {
+ /**
+ * The service id the secret is granted to (its token's svc:<id>).
+ */
+ service: string;
+ /**
+ * @minItems 1
+ * @maxItems 2
+ */
+ purposes: ["sign" | "reveal"] | ["sign" | "reveal", "sign" | "reveal"];
+ /**
+ * The https origins the value may be revealed for (reveal only; empty for sign).
+ *
+ * @maxItems 10
+ */
+ origins:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string];
+ created_at: string;
+ created_by: string;
+ last_used_at: string | null;
+ }
+ ];
+ created_at: string;
+ created_by: string;
+ updated_at: string;
+ updated_by: string;
+}
+
+/** [email protected] (owner: network) */
+/**
+ * network.secret-use-request@1 (ADR-056): what a first-party service sends to POST /internal/secrets/use with network.secret.use. sign asks for HMAC-SHA256 of message under the secret (the value never leaves Network); reveal asks for the value, to send to origin. Either needs a grant of that secret to the calling service for that purpose (and origin).
+ */
+export type SecretUseRequest = {
+ [k: string]: unknown | undefined;
+} & {
+ project_id: string;
+ environment: "sandbox" | "production";
+ name: string;
+ purpose: "sign" | "reveal";
+ /**
+ * sign: the exact text to sign (for a webhook delivery, "<timestamp>.<raw body>"). Not allowed with reveal.
+ */
+ message?: string;
+ /**
+ * reveal: the https origin the value will be sent to; the grant must list it. Not allowed with sign.
+ */
+ origin?: string;
+};
+
+/** [email protected] (owner: network) */
+/**
+ * network.secret-use-result@1 (ADR-056): POST /internal/secrets/use's answer — the secret's name and version with the HMAC-SHA256 signature (sign) or the value (reveal). Sent with Cache-Control: no-store; a caller keeps a revealed value only as long as the request it is for.
+ */
+export type SecretUseResult = {
+ [k: string]: unknown | undefined;
+} & {
+ name: string;
+ version: number;
+ purpose: "sign" | "reveal";
+ /**
+ * sign: the lowercase hex HMAC-SHA256 of the message under the secret.
+ */
+ signature?: string;
+ /**
+ * reveal: the value.
+ */
+ value?: string;
+};
+
/** [email protected] (owner: network) */
/** [email protected] (owner: network) */
/**
/**
* network.status-incident@1 (roadmap WS-N task 12): one incident or maintenance window on openvibe.network/status, public. An incident moves investigating → identified → monitoring → resolved; a maintenance window scheduled → in_progress → completed. Each change adds an update with its message; the newest state is the incident's. Services are registry ids. Messages are plain text written for people (no internal hostnames, secrets or personal data).
* network.status-incident@1 (roadmap WS-N task 12): one incident or maintenance window on openvibe.network/status, public. An incident moves investigating → identified → monitoring → resolved; a maintenance window scheduled → in_progress → completed. Each change adds an update with its message; the newest state is the incident's. Services are registry ids. Messages are plain text written for people (no internal hostnames, secrets or personal data).
new file mode 100644
new file mode 100644
@@ -0,0 +1,21 @@
@@ -0,0 +1,21 @@
+{
+ "id": "network.secret.use",
+ "version": "1.0",
+ "owner": "network",
+ "status": "active",
+ "visibility": "first-party",
+ "description": "Sign with, or reveal, a project secret the project granted to the calling service (ADR-056): sign answers HMAC-SHA256 of a message and never the value; reveal answers the value only for an origin the grant lists.",
+ "inputSchema": "network.secret-use-request@1",
+ "outputSchema": "network.secret-use-result@1",
+ "permissions": [
+ "secrets:use"
+ ],
+ "resourceConstraints": [
+ "project"
+ ],
+ "quotaClass": "secrets-use",
+ "events": [],
+ "implementedBy": [
+ "POST /internal/secrets/use"
+ ]
+}
@@ -60,6 +60,7 @@
@@ -60,6 +60,7 @@
"network.registry.read",
"network.registry.read",
"network.resource.read",
"network.resource.read",
"network.resource.report",
"network.resource.report",
+ "network.secret.use",
"network.staff.read",
"network.staff.read",
"network.status.incident"
"network.status.incident"
],
],
@@ -1,6 +1,6 @@
@@ -1,6 +1,6 @@
{
{
"name": "openvibe-contracts",
"name": "openvibe-contracts",
- "version": "0.176.1",
+ "version": "0.177.0",
"description": "Machine-readable contracts for the OpenVibe network: schemas, manifests, ids, error envelope, capability checks.",
"description": "Machine-readable contracts for the OpenVibe network: schemas, manifests, ids, error envelope, capability checks.",
"main": "index.js",
"main": "index.js",
"types": "generated/typescript/index.d.ts",
"types": "generated/typescript/index.d.ts",