/\ ATFGraph /docs
README Downloads
HTTP API & schemas / ATFGraph
Framework reference

This article is retained from the existing framework docs. Self-hosting commands and server-admin access differ from the managed CLI workflow. Start with Get started for the installed product.

Identity API

Manage node signing identities, sign recorded paths and verify proofs.

Operations

OperationMethodPath
listIdentitiesGET/api/v2/identities
createIdentityPOST/api/v2/identities
revokeIdentityPOST/api/v2/identities/{id}/revoke
rotateIdentityPOST/api/v2/identities/{id}/rotate
verifyProofPOST/api/v2/proofs/verify
listPathProofsGET/api/v2/traversers/{id}/proofs
signPathPOST/api/v2/traversers/{id}/sign

listIdentities

GET /api/v2/identities

Requires: invoke role

Generated Python client internals: atfgraph._generated.api.identity_api.IdentityApi.list_identities()

Responses

StatusBodyMeaning
200IdentityListSuccessful operation
400ErrorResponseStructured API error
401ErrorResponseMissing or invalid credentials
403ErrorResponseRole or ownership denied
404ErrorResponseResource unavailable to this identity
409ErrorResponseRevision, idempotency, immutable version or lease conflict
413ErrorResponseStructured API error
422ErrorResponseCapability input/output schema violation
429ErrorResponseCapacity exceeded
500ErrorResponseStructured API error
503ErrorResponseStructured API error

Example response 200

{
  "items": [
    {
      "algorithm": "string",
      "created_at": 0,
      "id": "string",
      "label": "string",
      "public_key": "string",
      "retired_at": 0,
      "revoked_at": 0,
      "state": "string"
    }
  ]
}

createIdentity

POST /api/v2/identities

Requires: admin role

Generated Python client internals: atfgraph._generated.api.identity_api.IdentityApi.create_identity()

Request body

IdentityCreate (required)

{
  "label": "string"
}

Responses

StatusBodyMeaning
201NodeIdentitySuccessful operation
400ErrorResponseStructured API error
401ErrorResponseMissing or invalid credentials
403ErrorResponseRole or ownership denied
404ErrorResponseResource unavailable to this identity
409ErrorResponseRevision, idempotency, immutable version or lease conflict
413ErrorResponseStructured API error
422ErrorResponseCapability input/output schema violation
429ErrorResponseCapacity exceeded
500ErrorResponseStructured API error
503ErrorResponseStructured API error

Example response 201

{
  "algorithm": "string",
  "created_at": 0,
  "id": "string",
  "label": "string",
  "public_key": "string",
  "retired_at": 0,
  "revoked_at": 0,
  "state": "string"
}

revokeIdentity

POST /api/v2/identities/{id}/revoke

Requires: admin role

Generated Python client internals: atfgraph._generated.api.identity_api.IdentityApi.revoke_identity()

Parameters

ParameterInRequiredType
idpathyesstring

Responses

StatusBodyMeaning
200RevokedIdentitySuccessful operation
400ErrorResponseStructured API error
401ErrorResponseMissing or invalid credentials
403ErrorResponseRole or ownership denied
404ErrorResponseResource unavailable to this identity
409ErrorResponseRevision, idempotency, immutable version or lease conflict
413ErrorResponseStructured API error
422ErrorResponseCapability input/output schema violation
429ErrorResponseCapacity exceeded
500ErrorResponseStructured API error
503ErrorResponseStructured API error

Example response 200

{
  "id": "string",
  "state": "string"
}

rotateIdentity

POST /api/v2/identities/{id}/rotate

Requires: admin role

Generated Python client internals: atfgraph._generated.api.identity_api.IdentityApi.rotate_identity()

Parameters

ParameterInRequiredType
idpathyesstring

Responses

StatusBodyMeaning
200NodeIdentitySuccessful operation
400ErrorResponseStructured API error
401ErrorResponseMissing or invalid credentials
403ErrorResponseRole or ownership denied
404ErrorResponseResource unavailable to this identity
409ErrorResponseRevision, idempotency, immutable version or lease conflict
413ErrorResponseStructured API error
422ErrorResponseCapability input/output schema violation
429ErrorResponseCapacity exceeded
500ErrorResponseStructured API error
503ErrorResponseStructured API error

Example response 200

{
  "algorithm": "string",
  "created_at": 0,
  "id": "string",
  "label": "string",
  "public_key": "string",
  "retired_at": 0,
  "revoked_at": 0,
  "state": "string"
}

verifyProof

POST /api/v2/proofs/verify

Requires: invoke role

Generated Python client internals: atfgraph._generated.api.identity_api.IdentityApi.verify_proof()

Request body

VerifyProof (required)

{
  "proof": {
    "algorithm": "string",
    "id": "string",
    "key_id": "string",
    "public_key": "string",
    "sha256": "string",
    "signature": "string",
    "signed": {
      "format": "string",
      "key_id": "string",
      "namespace": "string",
      "path": {
        "id": "string",
        "items": [
          {}
        ],
        "root_id": "string"
      },
      "signed_at": 0
    }
  }
}

Responses

StatusBodyMeaning
200ProofVerificationSuccessful operation
400ErrorResponseStructured API error
401ErrorResponseMissing or invalid credentials
403ErrorResponseRole or ownership denied
404ErrorResponseResource unavailable to this identity
409ErrorResponseRevision, idempotency, immutable version or lease conflict
413ErrorResponseStructured API error
422ErrorResponseCapability input/output schema violation
429ErrorResponseCapacity exceeded
500ErrorResponseStructured API error
503ErrorResponseStructured API error

Example response 200

{
  "algorithm": "string",
  "key_state": "string",
  "trusted": false,
  "valid": false
}

listPathProofs

GET /api/v2/traversers/{id}/proofs

Requires: invoke role

Generated Python client internals: atfgraph._generated.api.identity_api.IdentityApi.list_path_proofs()

Parameters

ParameterInRequiredType
idpathyesstring

Responses

StatusBodyMeaning
200ProofListSuccessful operation
400ErrorResponseStructured API error
401ErrorResponseMissing or invalid credentials
403ErrorResponseRole or ownership denied
404ErrorResponseResource unavailable to this identity
409ErrorResponseRevision, idempotency, immutable version or lease conflict
413ErrorResponseStructured API error
422ErrorResponseCapability input/output schema violation
429ErrorResponseCapacity exceeded
500ErrorResponseStructured API error
503ErrorResponseStructured API error

Example response 200

{
  "items": [
    {
      "algorithm": "string",
      "id": "string",
      "key_id": "string",
      "public_key": "string",
      "sha256": "string",
      "signature": "string",
      "signed": {
        "format": "string",
        "key_id": "string",
        "namespace": "string",
        "path": {
          "id": {},
          "items": {},
          "root_id": {},
          "steps_returned": {},
          "steps_total": {},
          "truncated": {}
        },
        "signed_at": 0
      }
    }
  ]
}

signPath

POST /api/v2/traversers/{id}/sign

Requires: admin role

Generated Python client internals: atfgraph._generated.api.identity_api.IdentityApi.sign_path()

Parameters

ParameterInRequiredType
idpathyesstring

Request body

SignPath (required)

{
  "key_id": "string"
}

Responses

StatusBodyMeaning
200PathProofSuccessful operation
400ErrorResponseStructured API error
401ErrorResponseMissing or invalid credentials
403ErrorResponseRole or ownership denied
404ErrorResponseResource unavailable to this identity
409ErrorResponseRevision, idempotency, immutable version or lease conflict
413ErrorResponseStructured API error
422ErrorResponseCapability input/output schema violation
429ErrorResponseCapacity exceeded
500ErrorResponseStructured API error
503ErrorResponseStructured API error

Example response 200

{
  "algorithm": "string",
  "id": "string",
  "key_id": "string",
  "public_key": "string",
  "sha256": "string",
  "signature": "string",
  "signed": {
    "format": "string",
    "key_id": "string",
    "namespace": "string",
    "path": {
      "id": "string",
      "items": [
        {
          "attempt": {},
          "attempts": {},
          "cancel_requested": {},
          "capability": {},
          "created_at": {},
          "deadline_at": {},
          "error": {},
          "finished_at": {},
          "id": {},
          "idempotency_key": {},
          "input": {},
          "input_bytes": {},
          "input_truncated": {},
          "kind": {},
          "label": {},
          "max_attempts": {},
          "operation_key": {},
          "output": {},
          "output_bytes": {},
          "parent_id": {},
          "parent_step_id": {},
          "principal": {},
          "replay": {},
          "root_id": {},
          "seq": {},
          "session_id": {},
          "started_at": {},
          "status": {},
          "step_id": {},
          "submitted_by": {},
          "target": {},
          "timeout_seconds": {},
          "updated_at": {},
          "version": {}
        }
      ],
      "root_id": "string",
      "steps_returned": 0,
      "steps_total": 0,
      "truncated": false
    },
    "signed_at": 0
  }
}
ATFGraph documentationHosted workflow · Framework reference