confidant.routes package

Submodules

confidant.routes.blind_credentials module

confidant.routes.blind_credentials.create_blind_credential()
confidant.routes.blind_credentials.get_archive_blind_credential_list()
confidant.routes.blind_credentials.get_archive_blind_credential_revisions(id)
confidant.routes.blind_credentials.get_blind_credential(id)
confidant.routes.blind_credentials.get_blind_credential_dependencies(id)
confidant.routes.blind_credentials.get_blind_credential_list()
confidant.routes.blind_credentials.revert_blind_credential_to_revision(id, to_revision)
confidant.routes.blind_credentials.update_blind_credential(id)

confidant.routes.certificates module

confidant.routes.certificates.get_ca(ca)

Get the CA information for the provided ca.

Example request:

GET /v1/cas/example-ca
Parameters:

ca (str) – The friendly name of the certificate authority to issue a certificate against.

Example response:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "example-ca": {
    "certificate": "---...BEGIN...",
    "certificate_chain": "---...BEGIN...",
    "tags": {
      "hello": "world"
   }
}
Resheader Content-Type:

application/json

Statuscode 200:

Success

Statuscode 403:

Client does not have access to get the requested CA.

confidant.routes.certificates.get_certificate(ca, cn)

Get a certificate from the provided CA, for the provided CN.

Example request:

GET /v1/certificates/example-ca/service.example.com
Parameters:
  • ca (str) – The friendly name of the certificate authority to issue a certificate against.

  • cn (str) – The canonical name attribute to use in the issued certificate.

Query string san:

A subject alternative name attribute to use in the issued certificate. This query parameter can be provided multiple times

Query int validity:

The length (in days) that the issued certificate should be valid for. If this value is longer than the server defined maximum validity length, the validity will be set to the maximum validity length.

Example response:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "certificate": "---...BEGIN...",
  "certificate_chain": "---...BEGIN...",
  "key": "---...BEGIN..."
}
Resheader Content-Type:

application/json

Statuscode 200:

success

Statuscode 403:

client does not have access to generate the requested certificate.

confidant.routes.certificates.get_certificate_from_csr(ca)

Get a certificate from the ca provided in the url, using the CSR, validity and san provided in the POST body.

Example request:

POST /v1/certificates/example-ca
<json string ca:

The friendly name of the certificate authority to issue a certificate against.

<json List[string] san:

a list of subject alternative name attributes to use in the issued certificate. This query parameter can be provided multiple times

<json int validity:

The length (in days) that the issued certificate. should be valid for. If this value is longer than the server defined maximum validity length, the validity will be set to the maximum validity length.

Example response:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "certificate": "---...BEGIN...",
  "certificate_chain": "---...BEGIN..."
}
Resheader Content-Type:

application/json

Statuscode 200:

Success

Statuscode 400:

Invalid input; either the CSR was unsbale to be decoded, or was missing from the request.

Statuscode 403:

Client does not have access to generate the requested certificate.

confidant.routes.certificates.list_cas()

List the configured CAs.

Example request:

GET /v1/cas

Example response:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "cas": [
    "example-ca": {
      "certificate": "---...BEGIN...",
      "certificate_chain": "---...BEGIN...",
      "tags": {
        "hello": "world"
     },
     ...
  ]
}
Resheader Content-Type:

application/json

Statuscode 200:

success

Statuscode 403:

client does not have access to list CAs

confidant.routes.credentials module

confidant.routes.credentials.archive_credential(id)

Archive the provided credential. Example request:

POST /v1/credentials/abcd12345bf4f1cafe8e722d3860404/archive
Parameters:

id – The credential ID to update.

<json bool force:

Run the archive operation, if false will only validate the provided input

Example response:

HTTP/1.1 200 OK
Content-Type: application/json

 {
   "result": "success"
 }
Resheader Content-Type:

application/json

Statuscode 200:

Success

Statuscode 400:

Invalid input or state

Statuscode 403:

Client does not have access to archive the provided credential ID.

confidant.routes.credentials.create_credential()

Create a credential using the data provided in the POST body.

Example request:

POST /v1/credentials
<json string name:

The friendly name for the credential. (required)

<json Dictionary{string:

string} credential_pairs: A dictionary of arbitrary key/value pairs to be encrypted at rest. (required)

<json Dictionary{string:

string} metadata: A dictionary of arbitrary key/ value pairs for custom per-credential end-user extensions. This is not encrypted at rest.

<json boolean enabled:

Whether or not this credential is enabled. (default: true)

<json string documentation:

End-user provided documentation for this credential. (required)

Example response:

HTTP/1.1 200 OK
Content-Type: application/json

 {
   "id": "abcd12345bf4f1cafe8e722d3860404",
   "name": "Example Credential",
   "credential_keys": ["example_credential_key"],
   "credential_pairs": {
     "example_credential_key": "example_credential_value"
   },
   "metadata": {
     "example_metadata_key": "example_value"
   },
   "revision": 1,
   "enabled": true,
   "documentation": "Example documentation",
   "modified_date": "2019-12-16T23:16:11.413299+00:00",
   "modified_by": "rlane@example.com",
   "permissions": {
     "metadata": true,
     "get": true,
     "update": true
   }
 }
Resheader Content-Type:

application/json

Statuscode 200:

Success

Statuscode 400:

Invalid input; either the data provided was not in the correct format, or a required field was not provided.

Statuscode 403:

Client does not have access to create credentials.

confidant.routes.credentials.diff_credential(id, old_revision, new_revision)

Returns a diff between old_revision and new_revision for the provided credential id.

Example request:

GET /v1/credentials/abcd12345bf4f1cafe8e722d3860404/1/2
Parameters:
  • id (str) – The credential ID to get.

  • old_revision (int) – One of the two revisions to diff against.

  • new_revision (int) – One of the two revisions to diff against.

Example response:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "name": {
    "added": "New credential name",
    "removed": "Example credential name"
  },
  "credential_pairs": {
    "added": [
      "api_key",
      "api_user"
    ],
    "removed": [
      "api_certificate"
    ]
  },
  "metadata": {
    "added": "example_key"
  },
  "enabled": {
    "added": false,
    "removed": true
  },
  "documentation": {
    "added": "The way you rotate this credential is to...",
    "removed": "Example documentation"
  },
  "modified_date": {
    "added": "2019-12-16T23:16:11.413299+00:00",
    "removed": "2019-11-16T23:16:11.413299+00:00"
  },
  "modified_by": {
    "added": "rlane@example.com",
    "removed": "testuser@example.com"
  }
}
Resheader Content-Type:

application/json

Statuscode 200:

Success

Statuscode 403:

Client does not have permissions to diff the provided credential ID.

Statuscode 404:

The provided credential ID or one of the provided revisions does not exist.

confidant.routes.credentials.generate_value()

Returns a randomly generated value, for use in credential pairs.

Example request:

GET /v1/value_generator

Example response:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "value": "c5S0w08YwU4PY3EZ7eQf4QYYUIT6ryyKOydhjyTti9pjPuMU00"
}
Resheader Content-Type:

application/json

Statuscode 200:

Success

confidant.routes.credentials.get_archive_credential_list()

Returns a list of the metadata of all the history revisions of credentials.

Example request:

GET /v1/archive/credentials/abcd12345bf4f1cafe8e722d3860404
Query string next_page:

If paged results were returned in a call, this query string can be used to fetch the next page.

Example response:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "revisions": [
    {
      "id": "abcd12345bf4f1cafe8e722d3860404-1",
      "name": "Example Credential",
      "credential_keys": [],
      "credential_pairs": {},
      "metadata": {
        "example_metadata_key": "example_value"
      },
      "revision": 1,
      "enabled": true,
      "documentation": "Example documentation",
      "modified_date": "2019-12-16T23:16:11.413299+00:00",
      "modified_by": "rlane@example.com",
      "permissions": {}
    },
    ...
  ],
  next_page: null
}
Resheader Content-Type:

application/json

Statuscode 200:

Success

Statuscode 403:

Client does not have permissions to list credentials

confidant.routes.credentials.get_archive_credential_revisions(id)

Returns a list of the metadata of all the revisions of the provided credential.

Example request:

GET /v1/archive/credentials/abcd12345bf4f1cafe8e722d3860404
Query string next_page:

If paged results were returned in a call, this query string can be used to fetch the next page.

Example response:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "revisions": [
    {
      "id": "abcd12345bf4f1cafe8e722d3860404-1",
      "name": "Example Credential",
      "credential_keys": [],
      "credential_pairs": {},
      "metadata": {
        "example_metadata_key": "example_value"
      },
      "revision": 1,
      "enabled": true,
      "documentation": "Example documentation",
      "modified_date": "2019-12-16T23:16:11.413299+00:00",
      "modified_by": "rlane@example.com",
      "permissions": {}
    },
    ...
  ],
  next_page: null
}
Resheader Content-Type:

application/json

Statuscode 200:

Success

Statuscode 403:

Client does not have permissions to get credential metadata for the provided credential ID.

Statuscode 404:

The provided credential ID does not exist.

confidant.routes.credentials.get_credential(id)

Returns a credential object for the provided credential id.

Example request:

GET /v1/credentials/abcd12345bf4f1cafe8e722d3860404
Parameters:

id (str) – The credential ID to get.

Example response:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "id": "...",
  "name": "Example Credential",
  "credential_keys": [
    "api_key",
    "api_user"
  ],
  "credential_pairs": {
    "api_key": "1234",
    "api_user": "example_user"
  },
  "metadata": {
    "example_metadata_key": "example_value"
  },
  "revision": 1,
  "enabled": true,
  "documentation": "Example documentation",
  "modified_date": "2019-12-16T23:16:11.413299+00:00",
  "modified_by": "rlane@example.com",
  "permissions": {
    "metadata": true,
    "get": true,
    "update": true
  }
}
Resheader Content-Type:

application/json

Statuscode 200:

Success

Statuscode 403:

Client does not have permissions to get the credential for the provided ID.

Statuscode 404:

The provided credential ID does not exist.

confidant.routes.credentials.get_credential_dependencies(id)

Returns a list of services that this credential is mapped to.

Example request:

GET /v1/credentials/abcd12345bf4f1cafe8e722d3860404/services

Example response:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "services": ["example-development", "example2-development"]
}
Resheader Content-Type:

application/json

Statuscode 200:

Success

Statuscode 403:

Client does not have permissions to get metadata for the provided credential.

confidant.routes.credentials.get_credential_list()

Returns a list of the metadata of all the current revision of credentials.

Example request:

GET /v1/credentials
Query string next_page:

If paged results were returned in a call, this query string can be used to fetch the next page.

Example response:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "credentials": [
    {
      "id": "abcd12345bf4f1cafe8e722d3860404",
      "name": "Example Credential",
      "credential_keys": [],
      "credential_pairs": {},
      "metadata": {
        "example_metadata_key": "example_value"
      },
      "revision": 1,
      "enabled": true,
      "documentation": "Example documentation",
      "modified_date": "2019-12-16T23:16:11.413299+00:00",
      "modified_by": "rlane@example.com",
      "permissions": {}
    },
    ...
  ],
  next_page: null
}
Resheader Content-Type:

application/json

Statuscode 200:

Success

Statuscode 403:

Client does not have permissions to list credentials.

confidant.routes.credentials.revert_credential_to_revision(id, to_revision)

Revert the provided credential to the provided revision.

Example request:

PUT /v1/credentials/abcd12345bf4f1cafe8e722d3860404/1
Parameters:
  • id (str) – The credential ID to revert.

  • to_revision (int) – The revision to revert this credential to.

Example response:

HTTP/1.1 200 OK
Content-Type: application/json

 {
   "id": "abcd12345bf4f1cafe8e722d3860404",
   "name": "Example Credential",
   "credential_keys": ["example_credential_key"],
   "credential_pairs": {},
   "metadata": {
     "example_metadata_key": "example_value"
   },
   "revision": 1,
   "enabled": true,
   "documentation": "Example documentation",
   "modified_date": "2019-12-16T23:16:11.413299+00:00",
   "modified_by": "rlane@example.com",
   "permissions": {
     "metadata": true,
     "get": true,
     "update": true
   }
 }
Resheader Content-Type:

application/json

Statuscode 200:

Success

Statuscode 400:

Invalid input; the update would create conflicting credential keys in a mapped service.

Statuscode 403:

Client does not have access to revert the provided credential ID.

confidant.routes.credentials.update_credential(id)

Update the provided credential using the data provided in the POST body.

Example request:

PUT /v1/credentials/abcd12345bf4f1cafe8e722d3860404
Parameters:

id (str) – The credential ID to update.

<json string name:

The friendly name for the credential.

<json Dictionary{string:

string} credential_pairs: A dictionary of arbitrary key/value pairs to be encrypted at rest.

<json Dictionary{string:

string} metadata: A dictionary of arbitrary key/ value pairs for custom per-credential end-user extensions. This is not encrypted at rest.

<json boolean enabled:

Whether or not this credential is enabled.

<json string documentation:

End-user provided documentation for this credential.

Example response:

HTTP/1.1 200 OK
Content-Type: application/json

 {
   "id": "abcd12345bf4f1cafe8e722d3860404",
   "name": "Example Credential",
   "credential_keys": ["example_credential_key"],
   "credential_pairs": {
     "example_credential_key": "example_credential_value"
   },
   "metadata": {
     "example_metadata_key": "example_value"
   },
   "revision": 1,
   "enabled": true,
   "documentation": "Example documentation",
   "modified_date": "2019-12-16T23:16:11.413299+00:00",
   "modified_by": "rlane@example.com",
   "permissions": {
     "metadata": true,
     "get": true,
     "update": true
   }
 }
Resheader Content-Type:

application/json

Statuscode 200:

Success

Statuscode 400:

Invalid input; either the data provided was not in the correct format, or the update would create conflicting credential keys in a mapped service.

Statuscode 403:

Client does not have access to update the provided credential ID.

confidant.routes.identity module

confidant.routes.identity.get_client_config()

Get configuration to help clients bootstrap themselves.

Example request:

GET /v1/client_config

Example response:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "defined": {},
  "generated": {
    "kms_auth_manage_grants": false,
    "aws_accounts": [],
    "xsrf_cookie_name": "XSRF_COOKIE",
    "maintenance_mode": false,
    "history_page_limit": 500,
    "permissions": {
      "list": true,
      "create": true
    }
  }
}
Resheader Content-Type:

application/json

Statuscode 200:

Success

confidant.routes.identity.get_user_info()

Get the email associated with the currently authenticated user.

Example request:

GET /v1/user/email

Example response:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "email": "rlane@example.com"
}
Resheader Content-Type:

application/json

Statuscode 200:

Success

confidant.routes.identity.login()

Send user through login flow. Response depends on configured authentication plugin.

Example request:

GET /v1/login

confidant.routes.jwks module

confidant.routes.jwks.get_public_jwks(environment)

Returns a the public JWKS for the requested environment

Example request:

GET /v1/jwks/public/staging

Example response:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "kty": "RSA",
  "kid": "staging",
  "n": "123...",
  "e": "AQAB",
  "alg" "RS256",
}
Resheader Content-Type:

application/json

Statuscode 200:

Success

Statuscode 404:

Public key not found for this environment

confidant.routes.jwks.get_token(id)

Returns a JWT for the authenticated service

Example request:

GET /v1/jwks/token/some-id

Example response:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "token": "ey..."
}
Resheader Content-Type:

application/json

Statuscode 200:

Success

Statuscode 400:

JWTs are not supported for this user

confidant.routes.saml module

confidant.routes.saml.consume_saml_assertion()

The SAML attribute consumer service receives POST callbacks from the IdP.

confidant.routes.saml.dump_session_info()

Debug endpoint to show SAML attributes.

confidant.routes.saml.generate_saml_login_redirect()

Redirect to the SAML login page. You don’t normally need to hit this since any page with @authnz.require_auth will redirect to login.

confidant.routes.saml.get_saml_metadata()

Generate SAML metadata XML describing the service endpoints.

confidant.routes.saml.saml_logout()

This dual purpose route both initiates SingleLogOut redirects to the IdP and receives the HTTP-REDIRECT callback (also a GET) from the IdP post logout.

confidant.routes.services module

confidant.routes.services.diff_service(id, old_revision, new_revision)

Returns a diff between old_revision and new_revision for the provided service id.

Example request:

GET /v1/services/example-development/1/2
Parameters:
  • id (str) – The service ID to get.

  • old_revision (int) – One of the two revisions to diff against.

  • new_revision (int) – One of the two revisions to diff against.

Example response:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "enabled": {
    "added": true,
    "removed": false
  },
  "credentials": {
    "added": [
      "abcd12345bf4f1cafe8e722d3860404"
    ],
    "removed": [
      "aaaa33335bf4f1cafe8e722d3860404"
    ]
  },
  "blind_credentials": {},
  "modified_date": {
    "added": "2019-12-16T23:16:11.413299+00:00",
    "removed": "2019-11-16T23:16:11.413299+00:00"
  },
  "modified_by": {
    "added": "rlane@example.com",
    "removed": "testuser@example.com"
  }
}
Resheader Content-Type:

application/json

Statuscode 200:

Success

Statuscode 403:

Client does not have permissions to diff the provided service ID.

Statuscode 404:

The provided service ID or one of the provided revisions does not exist.

confidant.routes.services.ensure_grants(id)

Ensure grants are set for the provided service ID.

Example request:

PUT /v1/grants/example-development
Parameters:

id (str) – The service ID to ensure grants for.

Example response:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "id": "example-development",
  "grants": {
    "encrypt_grant": true,
    "decrypt_grant": true
  }
}
Resheader Content-Type:

application/json

Statuscode 200:

Success

Statuscode 400:

Invalid input. The service provided does not exist.

Statuscode 403:

Client does not have permissions to create or update the specified service ID.

confidant.routes.services.get_archive_service_list()

Get a list of service history revisions.

Example request:

GET /v1/archive/services
Query string next_page:

If paged results were returned in a call, this query string can be used to fetch the next page.

Example response:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "services": [
    {
      "id": "example-development-1",
      "revision": 1,
      "enabled": true,
      "modified_date": "2019-12-16T23:16:11.413299+00:00",
      "modified_by": "rlane@example.com",
      "account": null,
      "credentials": [],
      "blind_credentials": [],
      "permissions": {}
    },
    ...
  ],
  "next_page": null
}
Resheader Content-Type:

application/json

Statuscode 200:

Success

Statuscode 403:

Client does not have permissions to list services.

confidant.routes.services.get_archive_service_revisions(id)

Get a list of revisions for the specified service ID.

Example request:

GET /v1/archive/services/example-development
Parameters:

id (str) – The service ID to get.

Query string next_page:

If paged results were returned in a call, this query string can be used to fetch the next page.

Example response:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "revisions": [
    {
      "id": "example-development-1",
      "revision": 1,
      "enabled": true,
      "modified_date": "2019-12-16T23:16:11.413299+00:00",
      "modified_by": "rlane@example.com",
      "account": null,
      "credentials": [],
      "blind_credentials": [],
      "permissions": {}
    },
    ...
  ],
  "next_page": null
}
Resheader Content-Type:

application/json

Statuscode 200:

Success

Statuscode 403:

Client does not have permissions to get metadata for the provided service ID.

Statuscode 404:

Specified ID does not exist.

confidant.routes.services.get_grants(id)

Get grants for the provided service ID.

Example request:

GET /v1/grants/example-development
Parameters:

id (str) – The service ID to ensure grants for.

Example response:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "id": "example-development",
  "grants": {
    "encrypt_grant": true,
    "decrypt_grant": true
  }
}
Resheader Content-Type:

application/json

Statuscode 200:

Success

Statuscode 400:

Invalid input. The service provided does not exist.

Statuscode 403:

Client does not have permissions to get service metadata for the specified service ID.

confidant.routes.services.get_iam_roles_list()

Get a list of IAM roles from the configured AWS account.

Example request:

GET /v1/roles

Example response:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "roles": [
    'example-development',
    'example2-development',
    ...
  ]
}
Resheader Content-Type:

application/json

Statuscode 200:

Success

Statuscode 403:

Client does not have permissions to list services.

confidant.routes.services.get_service(id)

Get a service object from the provided service ID.

Example request:

GET /v1/services/example-development
Parameters:

id (str) – The service ID to get.

Query boolean metadata_only:

If true, only fetch metadata for this service, and do not respond with decrypted credential pairs in the credential responses.

Example response:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "id": "example-development",
  "revision": 1,
  "enabled": true,
  "modified_date": "2019-12-16T23:16:11.413299+00:00",
  "modified_by": "rlane@example.com",
  "account": null,
  "credentials": [
    {
      "id": "abcd12345bf4f1cafe8e722d3860404",
      "name": "Example Credential",
      "credential_keys": ["test_key"],
      "credential_pairs": {
        "test_key": "test_value"
      },
      "metadata": {
        "example_metadata_key": "example_value"
      },
      "revision": 1,
      "enabled": true,
      "documentation": "Example documentation",
      "modified_date": "2019-12-16T23:16:11.413299+00:00",
      "modified_by": "rlane@example.com",
      "permissions": {}
    },
    ...
  ],
  "blind_credentials": [],
  "permissions": {
    "metadata": true,
    "get": true,
    "update": true
  }
}
Resheader Content-Type:

application/json

Statuscode 200:

Success

Statuscode 403:

Client does not have permissions to get the service ID provided.

confidant.routes.services.get_service_list()

Get a list of current service revisions.

Example request:

GET /v1/services
Query string next_page:

If paged results were returned in a call, this query string can be used to fetch the next page.

Query int limit:

Limit of items per each page (required for pagination)

Example response:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "services": [
    {
      "id": "example-development",
      "revision": 1,
      "enabled": true,
      "modified_date": "2019-12-16T23:16:11.413299+00:00",
      "modified_by": "rlane@example.com",
      "account": null,
      "credentials": [],
      "blind_credentials": [],
      "permissions": {}
    },
    ...
  ],
  "next_page": null
}
Resheader Content-Type:

application/json

Statuscode 200:

Success

Statuscode 403:

Client does not have permissions to list services.

confidant.routes.services.map_service_credentials(id)

Create or update a service to credential mapping.

Example request:

PUT /v1/services/example-development
Parameters:

id (str) – The service ID to create or update.

<json List[string] credentials:

A list of credential IDs to map to this service.

<json List[string] blind_credentials:

A list of blind_credential IDs to map to this service.

<json boolean enabled:

Whether or not this service is enabled. (default: true)

<json string account:

An AWS account to scope this service to.

Example response:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "id": "example-development",
  "revision": 1,
  "enabled": true,
  "modified_date": "2019-12-16T23:16:11.413299+00:00",
  "modified_by": "rlane@example.com",
  "account": null,
  "credentials": [
    {
      "id": "abcd12345bf4f1cafe8e722d3860404",
      "name": "Example Credential",
      "credential_keys": ["test_key"],
      "credential_pairs": {
        "test_key": "test_value"
      },
      "metadata": {
        "example_metadata_key": "example_value"
      },
      "revision": 1,
      "enabled": true,
      "documentation": "Example documentation",
      "modified_date": "2019-12-16T23:16:11.413299+00:00",
      "modified_by": "rlane@example.com",
      "permissions": {}
    },
    ...
  ],
  "blind_credentials": [],
  "permissions": {}
    "metadata": True,
    "get": True,
    "update": True
  }
}
Resheader Content-Type:

application/json

Statuscode 200:

Success

Statuscode 400:

Invalid input; Either required fields were not provided or credentials being mapped would result in credential key conflicts.

Statuscode 403:

Client does not have permissions to create or update the specified service ID.

confidant.routes.services.revert_service_to_revision(id, to_revision)

Revert the provided service to the provided revision.

Example request:

PUT /v1/services/example-development/1
Parameters:
  • id (str) – The service ID to revert.

  • to_revision (int) – The revision to revert this service to.

Example response:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "id": "abcd12345bf4f1cafe8e722d3860404",
  "name": "Example Credential",
  "credential_keys": ["test_key"],
  "credential_pairs": {
    "test_key": "test_value"
  },
  "metadata": {
    "example_metadata_key": "example_value"
  },
  "revision": 1,
  "enabled": true,
  "documentation": "Example documentation",
  "modified_date": "2019-12-16T23:16:11.413299+00:00",
  "modified_by": "rlane@example.com",
  "permissions": {}
}
Resheader Content-Type:

application/json

Statuscode 200:

Success

Statuscode 400:

Invalid input; the update would create conflicting credential keys in the service mapping.

Statuscode 403:

Client does not have access to revert the provided service ID.

confidant.routes.static_files module

confidant.routes.static_files.components(path)
confidant.routes.static_files.custom_images(path)
confidant.routes.static_files.custom_modules(path)
confidant.routes.static_files.custom_styles(path)
confidant.routes.static_files.favicon()
confidant.routes.static_files.fonts(path)
confidant.routes.static_files.goodbye()
confidant.routes.static_files.healthcheck()
confidant.routes.static_files.images(path)
confidant.routes.static_files.index()
confidant.routes.static_files.modules(path)
confidant.routes.static_files.not_found()
confidant.routes.static_files.robots()
confidant.routes.static_files.scripts(path)
confidant.routes.static_files.static_proxy(path)

Module contents