Secrets

CreateInternal creates a secret using the requested Age suite.

post/api/v1/secrets/internal

Request

  • Base URL
    https://example.conductor.one
  • URL
    https://example.conductor.one/api/v1/secrets/internal
  • Auth
    HTTP bearer and OAuth 2
    Client credentials
    Token URL: /auth/v1/token

Request body

allowedUserIdsstring[] nullable

C1 User IDs allowed to view this secret (1 to 128).

contentTypestring

For FILE secrets: MIME content type of the original file. Ignored for TEXT secrets.

displayNamestring

Optional cleartext label visible to the creator in "My Secrets" view. Not encrypted — do not put sensitive data here.

expiresInstring duration nullable
fileSizestring int64

For FILE secrets: expected file size in bytes (max 1GB). Ignored for TEXT secrets.

filenamestring

For FILE secrets: original filename (sanitized server-side). Ignored for TEXT secrets.

inputFormat'SECRET_INPUT_FORMAT_UNSPECIFIED' | 'SECRET_INPUT_FORMAT_PLAINTEXT' | 'SECRET_INPUT_FORMAT_JSON' | 'SECRET_INPUT_FORMAT_YAML' | 'SECRET_INPUT_FORMAT_KEY_VALUE'

For TEXT secrets: hint about the plaintext format (e.g., JSON, YAML, key-value). Used by the viewer UI for syntax highlighting. Does not affect encryption.

maxViewsinteger

Maximum number of views before the secret is burned (0 = unlimited).

requiredAgeSuite'AGE_SUITE_UNSPECIFIED' | 'AGE_SUITE_X25519' | 'AGE_SUITE_MLKEM768X25519'

Exact Age suite required for this submission. UNSPECIFIED preserves legacy X25519 behavior.

secretType'SECRET_TYPE_UNSPECIFIED' | 'SECRET_TYPE_TEXT' | 'SECRET_TYPE_FILE'

Secret type: TEXT or FILE. TEXT secrets use SetTextContent to upload encrypted content (max 64KB). FILE secrets use the upload_url from CreateResponse to upload encrypted content (max 1GB).

Response

Successful response

ageRecipientstring

Canonical recipient public key for the exact age_suite returned below. All content MUST be encrypted to this recipient using the Age encryption format before calling SetTextContent or uploading to upload_url. See: https://age-encryption.org

ageSuite'AGE_SUITE_UNSPECIFIED' | 'AGE_SUITE_X25519' | 'AGE_SUITE_MLKEM768X25519'

Exact Age suite required for this submission.

uploadUrlstring

For FILE secrets: capability URL for uploading the Age-encrypted file. Send an HTTP PUT request with the Age-encrypted file bytes as the body and Content-Type: application/octet-stream. The payload MUST begin with the Age header "age-encryption.org/v1\n". Maximum file size: 1GB. Empty for TEXT secrets.

vaultIdstring

Vault ID - primary identifier for this secret.

Changes

    • breaking

      the request property became not nullable

    • breaking

      added subschema #2 to the response property oneOf list for the response status

    • breaking

      the response's property type changed from object to no type for status

    • warning

      removed the optional property / from the response with the status

    • warning

      removed the optional property / from the response with the status

    • warning

      removed the optional property / from the response with the status

    • warning

      removed the optional property / from the response with the status

    • warning

      removed the optional property / from the response with the status

    • warning

      removed the optional property / from the response with the status

    • warning

      removed the optional property / from the response with the status

    • warning

      removed the optional property / from the response with the status

    • warning

      removed the optional property / from the response with the status

    • warning

      removed the optional property / from the response with the status

    • warning

      removed the optional property / from the response with the status

    • warning

      removed the optional property / from the response with the status

    • warning

      removed the optional property / from the response with the status

    • warning

      removed the optional property / from the response with the status

    • warning

      removed the optional property / from the response with the status

    • warning

      removed the optional property / from the response with the status

    • warning

      removed the optional property / from the response with the status

    • warning

      removed the optional property / from the response with the status

    • warning

      removed the optional property / from the response with the status

    • warning

      removed the optional property / from the response with the status

    • warning

      removed the optional property / from the response with the status

    • warning

      removed the optional property / from the response with the status

    • info

      added the new optional request property

    • info

      the request property became nullable

    • info

      added the optional property to the response with the status

    • info

      endpoint added