Skip to main content

evertrust-horizon

Authentication

Most of the API calls that Horizon uses require you to be authenticated to the API. The first authentication can either be done through the use of an X509 certificate or using credentials of a local account, but every single API call afterward will need to bear the authentication information nonetheless. Regardless of the chosen authentication method, the authorization used must have sufficient permissions to perform the desired operation.

Authenticating using API-ID and API-KEY

This method of authentication requires you to send your Horizon local account credentials as HTTP headers. To check whether the credentials are correct, you can perform a GET request on /api/v1/security/principals/self and check for the response status :

 $ curl https://horizon.evertrust.fr/api/v1/security/principals/self -H \"X-API-ID: administrator\" -H \"X-API-KEY: horizon\" -H \"Accept: application/json\"

Possible responses are:

HTTP Response code Additional information
200 The login information were correct
401 Authentication error, please refer to the response body for more details

Authenticating using an X509 certificate

This method of authentication requires to have a created authorization based on an X509 certificate that has the clientAuth EKU. It also requires you to have imported the CA that issued this certificate in Horizon and turning on the "Trusted for client authentication" switch on that CA. You must then present the certificate on the request you are performing.

To check for the authentication, you can perform a GET request on /api/v1/security/principals/self :

 $ curl https://horizon.evertrust.fr/api/v1/security/principals/self --cert horizon-login-dev-guide.pem --key horizon-login-dev-guide.key -H \"Accept: application/json\"

Possible responses are:

HTTP Response code Additional information
200 The login information were correct
401 Authentication error, please refer to the response body for more details

Handling next authentications using the Play Session

Once the first authentication is done, the API generates a cookie called "PLAY_SESSION". This cookie holds the authentication information that was used to make the first login (using either previously mentioned method). To save its value for later use, just append the -c cookies.txt to either of the previous curl requests. Instead of using the credentials as headers or passing the certificate at each API call, you can use the cookie :

 $ curl https://horizon.evertrust.fr/api/v1/security/principals/self -b cookies.txt -H \"Accept: application/json\"

Handling CSRF Token

Our api are used by a frontend and require a CSRF protection. A CSRF token validation is needed when all of the following are true:

  • The request method is not GET, HEAD or OPTIONS.
  • The request has one or more Cookie or Authorization headers.

Receiving the following response with valid credentials can mean that your request has failed the CSRF token validation:

{
    \"error\": \"SEC-AUTH-002\",
    \"message\": \"Invalid credentials or principal does not exist\",
    \"title\": \"Invalid credentials or principal does not exist\",
    \"status\": 401
}

To avoid the CSRF token validation in api usage:

  • Authentication using API-ID and API-KEY headers should be prioritized as http basic authentication results in the creation of an Authorization header.
  • Avoid the use of cookies as api usage does not require them.

If you cannot avoid those cases, the following procedure explains how to handle the CSRF token validation.

First you will have to retrieve a valid cookie CSRF token from the server.

 $ curl https://horizon.evertrust.fr/api/v1/security/principals/self --header 'X-API-ID:administrator' --header 'X-API-KEY:horizon' -c cookies.txt

Once done the file cookies.txt should have two entries:

  • A play session
  • A CSRF token:
localhost FALSE / FALSE 0 csrf-token 456aa18162e8736047dbd878617283aa361cd83e-1708941483170-da503a15304a666a96748f5d
localhost FALSE / FALSE 1708942383 PLAY_SESSION eyJhbGciOiJIUzI1NiJ9.eyJkYXRhIjp7ImlkZW50aWZpZXIiOiJhZG1pbmlzdHJhdG9yIiwibmFtZSI6Ikhvcml6b24gQWRtaW5pc3RyYXRvciIsImlkcFR5cGUiOiJMb2NhbCIsImlkcE5hbWUiOiJsb2NhbCJ9LCJleHAiOjE3MDg5NDIzODMsIm5iZiI6MTcwODk0MTQ4MywiaWF0IjoxNzA4OTQxNDgzfQ.79xRjdGhaVv_5mM8bpkLgcL78QCEWu08zgthP_dt9Pc

To successfully authenticate to the server, both the csrf-token cookie and a csrf-token header containing the cookie content should be defined.

Sending a POST request using cookies without the csrf-token header will result in the forbidden html page:

curl --location 'localhost:9000/api/v1/certificate/labels' \\
--header 'X-API-ID: administrator' \\
--header 'X-API-KEY: evertrust' \\
--header 'Content-Type: application/json' \\
-b cookies.txt \\
--data '{
    \"name\": \"NEW_LABEL\",
    \"displayName\" : [],
    \"description\": []
}'

A valid authentication also copies the content in the csrf-token header:

curl --location 'localhost:9000/api/v1/certificate/labels' \\
--header 'X-API-ID: administrator' \\
--header 'X-API-KEY: evertrust' \\
--header 'csrf-token: 456aa18162e8736047dbd878617283aa361cd83e-1708941483170-da503a15304a666a96748f5d' \\
--header 'Content-Type: application/json' \\
--data '{
    \"name\": \"NEW_LABEL\",
    \"regex\": null,
    \"displayName\" : [],
    \"description\": []
}'

This Python package is automatically generated by the OpenAPI Generator project:

  • API version: 2.8.0
  • Package version: 2.8.0
  • Generator version: 7.22.0
  • Build package: org.openapitools.codegen.languages.PythonPydanticV1ClientCodegen

Requirements.

Python 3.7+

Installation & Usage

pip install

You can install directly the library using:

python -m pip install evertrust-horizon

(you may need to run pip with root permission: sudo python -m pip install evertrust-horizon)

Then import the package:

import horizon

Setuptools

Install via Setuptools.

python setup.py install --user

(or sudo python setup.py install to install the package for all users)

Then import the package:

import horizon

Tests

Execute pytest to run the tests.

Getting Started

Please follow the installation procedure and then run the following:

import horizon
from horizon.exceptions import ApiException
from pprint import pprint

# Defining the host is optional and defaults to http://localhost:9000
# See configuration.py for a list of all supported configuration parameters.
configuration = horizon.Configuration(
    host = "http://localhost:9000"
)

# The client must configure the authentication and authorization parameters
# in accordance with the API server security policy.
# Examples for each auth method are provided below, use the example that
# satisfies your auth use case.

# Configure API key authorization: apiKey
configuration.api_key['apiKey'] = os.environ["API_KEY"]

# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
# configuration.api_key_prefix['apiKey'] = 'Bearer'

# Configure API key authorization: cookieAuth
configuration.api_key['cookieAuth'] = os.environ["API_KEY"]

# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
# configuration.api_key_prefix['cookieAuth'] = 'Bearer'

# Configure API key authorization: apiId
configuration.api_key['apiId'] = os.environ["API_KEY"]

# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
# configuration.api_key_prefix['apiId'] = 'Bearer'


# Enter a context with an instance of the API client
with horizon.ApiClient(configuration) as api_client:
    # Create an instance of the API class
    api_instance = horizon.AdocApi(api_client)

    try:
        # Generate the configuration cookbook in adoc format
        api_response = api_instance.adoc_get()
        print("The response of AdocApi->adoc_get:\n")
        pprint(api_response)
    except ApiException as e:
        print("Exception when calling AdocApi->adoc_get: %s\n" % e)

Documentation for API Endpoints

All URIs are relative to http://localhost:9000

Class Method HTTP request Description
AdocApi adoc_get GET /api/v1/adoc Generate the configuration cookbook in adoc format
ArchiveApi archive_add POST /api/v1/archives Register a new archive
ArchiveApi archive_cancel GET /api/v1/archives/{name}/cancel Cancel a completed archive
ArchiveApi archive_count POST /api/v1/archives/count Get an estimated count of an archive content
ArchiveApi archive_delete DELETE /api/v1/archives/{name} Delete an existing archive
ArchiveApi archive_download GET /api/v1/archives/{name}/download Download an existing archive
ArchiveApi archive_get GET /api/v1/archives/{name} Retrieve an existing archive
ArchiveApi archive_list GET /api/v1/archives List the existing archives
ArchiveApi archive_retry GET /api/v1/archives/{name}/retry Retry a failed archive
AutomationExecutionApi automation_execution_add POST /api/v1/automation/executions Register a new execution policy
AutomationExecutionApi automation_execution_delete DELETE /api/v1/automation/executions/{name} Delete an existing execution policy
AutomationExecutionApi automation_execution_get GET /api/v1/automation/executions/{name} Retrieve an existing execution policy
AutomationExecutionApi automation_execution_list GET /api/v1/automation/executions List the existing execution policies
AutomationExecutionApi automation_execution_update PUT /api/v1/automation/executions Update an existing execution policy
AutomationLifecycleApi automation_policy_lifecycle_get GET /api/v1/automation/lifecycle/{name} Retrieve the enroll materials
AutomationLifecycleApi automation_policy_lifecycle_verify GET /api/v1/automation/lifecycle/{name}/verify Verify the certificate against the Automation policy
AutomationPolicyApi automation_policy_add POST /api/v1/automation/policies Register a new automation policy
AutomationPolicyApi automation_policy_delete DELETE /api/v1/automation/policies/{name} Delete an existing automation policy
AutomationPolicyApi automation_policy_get GET /api/v1/automation/policies/{name} Retrieve an existing automation policy
AutomationPolicyApi automation_policy_list GET /api/v1/automation/policies List the existing automation policies
AutomationPolicyApi automation_policy_update PUT /api/v1/automation/policies Update an existing automation policy
CaApi ca_add POST /api/v1/cas Register a new certificate authority
CaApi ca_delete DELETE /api/v1/cas/{name} Delete an existing certificate authority
CaApi ca_get GET /api/v1/cas/{name} Retrieve an existing certificate authority
CaApi ca_list GET /api/v1/cas List the existing certificate authorities
CaApi ca_update PUT /api/v1/cas Update an existing certificate authority
CacheApi cache_crl_get GET /api/v1/caches/crls/{ca} Retrieve the CRL cache info for a specific certificate authority
CacheApi cache_crl_list GET /api/v1/caches/crls List the CRL cache info
CertificateApi certificate_aggregate POST /api/v1/certificates/aggregate Certificate aggregation
CertificateApi certificate_csv POST /api/v1/certificates/csv Export certificates
CertificateApi certificate_dictionary GET /api/v1/certificates/search/dictionary Retrieve the certificate search dictionary
CertificateApi certificate_find POST /api/v1/certificates/find Find a certificate
CertificateApi certificate_get_id GET /api/v1/certificates/{id} Retrieve a certificate
CertificateApi certificate_get_pem GET /api/v1/certificates/{pem} Retrieve a certificate by PEM
CertificateApi certificate_list POST /api/v1/certificates List certificates
CertificateApi certificate_run PATCH /api/v1/certificates/run/{id}/{triggerName}/{event} Run a certificate trigger
CertificateApi certificate_search POST /api/v1/certificates/search Search certificates
CertificateAnalyticsApi analytics_certificate_flush DELETE /api/v1/analytics/certificates Flush certificate analytics synchronization
CertificateAnalyticsApi analytics_certificate_get GET /api/v1/analytics/certificates Retrieve the certificate analytics status
CertificateAnalyticsApi analytics_certificate_update PATCH /api/v1/analytics/certificates Schedule a new certificate analytics synchronization
CertificateGradingPolicyApi grading_policy_explain_file POST /api/v1/certificate/grading/policies/{policy}/explain Explain a Grading Policy
CertificateGradingPolicyApi grading_policy_explain_url GET /api/v1/certificate/grading/policies/{policy}/explain/{input} Explain a Grading Policy
CertificateGradingPolicyApi grading_policy_get GET /api/v1/certificate/grading/policies/{name} Retrieve an existing grading policy
CertificateGradingPolicyApi grading_policy_list GET /api/v1/certificate/grading/policies List the existing grading policies
CertificateGradingPolicyApi grading_policy_run GET /api/v1/certificate/grading/policies/{policy}/run Run a grading policy
CertificateGradingRulesetApi grading_ruleset_explain_file POST /api/v1/certificate/grading/rulesets/{ruleset}/explain Explain a Grading Ruleset
CertificateGradingRulesetApi grading_ruleset_explain_url GET /api/v1/certificate/grading/rulesets/{ruleset}/explain/{input} Explain a Grading Ruleset
CertificateGradingRulesetApi grading_ruleset_get GET /api/v1/certificate/grading/rulesets/{name} Retrieve an existing grading ruleset
CertificateGradingRulesetApi grading_ruleset_list GET /api/v1/certificate/grading/rulesets List the existing grading rulesets
CertificateLabelApi label_add POST /api/v1/certificate/labels Register a new label
CertificateLabelApi label_delete DELETE /api/v1/certificate/labels/{name} Delete an existing label
CertificateLabelApi label_get GET /api/v1/certificate/labels/{name} Retrieve an existing label
CertificateLabelApi label_list GET /api/v1/certificate/labels List the existing labels
CertificateLabelApi label_update PUT /api/v1/certificate/labels Update an existing label
CertificateProfileApi certificate_profile_add POST /api/v1/certificate/profiles Register a new certificate profile
CertificateProfileApi certificate_profile_delete DELETE /api/v1/certificate/profiles/{name} Delete a certificate profile
CertificateProfileApi certificate_profile_get GET /api/v1/certificate/profiles/{name} Retrieve a specific certificate profile
CertificateProfileApi certificate_profile_list GET /api/v1/certificate/profiles List the existing certificate profiles
CertificateProfileApi certificate_profile_update PUT /api/v1/certificate/profiles Update an existing certificate profile
ConfigurationsExportApi export_export_items POST /api/v1/system/configurations/export Export configuration items
ConfigurationsExportApi export_import_items POST /api/v1/system/configurations/import Import configuration items
ConfigurationsExportApi export_list_items GET /api/v1/system/configurations/export List exportable configuration items
DatasourceApi datasource_add POST /api/v1/datasources Register a new datasource
DatasourceApi datasource_delete DELETE /api/v1/datasources/{name} Delete a datasource
DatasourceApi datasource_get GET /api/v1/datasources/{name} Get a datasource
DatasourceApi datasource_list GET /api/v1/datasources List the existing datasource(s)
DatasourceApi datasource_test PATCH /api/v1/datasources Test a datasource
DatasourceApi datasource_update PUT /api/v1/datasources Update an existing datasource
DatasourceFlowApi datasource_flow_template POST /api/v1/datasource/flows/template Retrieve the template for a datasource flow
DatasourceFlowApi datasource_flow_test POST /api/v1/datasource/flows Test a datasource flow
DiscoveryCampaignApi discovery_campaign_add POST /api/v1/discovery/campaigns Create a new discovery campaign
DiscoveryCampaignApi discovery_campaign_delete DELETE /api/v1/discovery/campaigns/{name} Delete a discovery campaign
DiscoveryCampaignApi discovery_campaign_flush PATCH /api/v1/discovery/campaigns/{name} Flush a discovery campaign
DiscoveryCampaignApi discovery_campaign_get GET /api/v1/discovery/campaigns/{name} Retrieve a discovery campaign
DiscoveryCampaignApi discovery_campaign_list GET /api/v1/discovery/campaigns List discovery campaign(s)
DiscoveryCampaignApi discovery_campaign_update PUT /api/v1/discovery/campaigns Update a discovery campaign
DiscoveryEventApi discovery_event_csv POST /api/v1/discovery/events/csv Discovery event search
DiscoveryEventApi discovery_event_get GET /api/v1/discovery/events/{id} Retrieve a specific discovery event
DiscoveryEventApi discovery_event_search POST /api/v1/discovery/events/search Discovery event search
DiscoveryEventAnalyticsApi analytics_discovery_event_flush DELETE /api/v1/analytics/discovery/events Flush discovery event analytics synchronization
DiscoveryEventAnalyticsApi analytics_discovery_event_get GET /api/v1/analytics/discovery/events Retrieve the discovery event analytics status
DiscoveryEventAnalyticsApi analytics_discovery_event_update PATCH /api/v1/analytics/discovery/events Schedule a new discovery event analytics synchronization
DiscoveryFeedApi discovery_feed POST /api/v1/discovery/feed Feed a discovered certificate into a discovery campaign
DiscoveryFeedApi discovery_feed_event_register PUT /api/v1/discovery/feed Push a new discovery event
DiscoveryFeedApi discovery_feed_session_end DELETE /api/v1/discovery/feed/{campaign}/{id} End a discovery session
DiscoveryFeedApi discovery_feed_session_start GET /api/v1/discovery/feed/{name} Create a new discovery feed session
EventApi event_get GET /api/v1/events/{id} Retrieved an existing Event
EventApi event_search POST /api/v1/events/search Event search
EventApi event_validate GET /api/v1/events/verify Event verify
EventAnalyticsApi analytics_event_flush DELETE /api/v1/analytics/events Flush event analytics synchronization
EventAnalyticsApi analytics_event_get GET /api/v1/analytics/events Retrieve the event analytics status
EventAnalyticsApi analytics_event_update PATCH /api/v1/analytics/events Schedule a new event analytics synchronization
HttpHttpproxyApi httpproxy_add POST /api/v1/proxy/httpproxies Register a new HTTP proxy
HttpHttpproxyApi httpproxy_delete DELETE /api/v1/proxy/httpproxies/{name} Delete an existing HTTP proxy
HttpHttpproxyApi httpproxy_get GET /api/v1/proxy/httpproxies/{name} Retrieve an existing HTTP proxy
HttpHttpproxyApi httpproxy_list GET /api/v1/proxy/httpproxies List the existing HTTP proxy(ies)
HttpHttpproxyApi httpproxy_update PUT /api/v1/proxy/httpproxies Update an existing HTTP proxy
LicenseApi licenses_list GET /api/v1/licenses Retrieve the license information
LicenseApi licenses_modules GET /api/v1/licenses/modules Retrieve the license entitled modules
PkiConnectorApi pki_connector_add POST /api/v1/pki/connectors Register a new PKI connector
PkiConnectorApi pki_connector_delete DELETE /api/v1/pki/connectors/{name} Delete an existing PKI connector
PkiConnectorApi pki_connector_get GET /api/v1/pki/connectors/{name} Retrieve an existing PKI connector
PkiConnectorApi pki_connector_list GET /api/v1/pki/connectors List the existing PKI connector(s)
PkiConnectorApi pki_connector_update PUT /api/v1/pki/connectors Update an existing PKI connector
PkiQueueApi pkiqueue_add POST /api/v1/pki/queues Register a new pki queue
PkiQueueApi pkiqueue_delete DELETE /api/v1/pki/queues/{name} Delete an existing pki queue
PkiQueueApi pkiqueue_get GET /api/v1/pki/queues/{name} Retrieve an existing pki queue
PkiQueueApi pkiqueue_list GET /api/v1/pki/queues List the existing pki queue(s)
PkiQueueApi pkiqueue_update PUT /api/v1/pki/queues Update an existing pki queue
ReportCsvApi report_csv_delete DELETE /api/v1/reports/{uuid} Delete a report CSV by its UUID
ReportCsvApi report_csv_download_by_uuid GET /reports/{uuid} Download a CSV report by its UUID
ReportCsvApi report_csv_list_all_metadata GET /api/v1/reports List all registered CSV reports
ReportCsvApi report_csv_list_all_metadata_by_report_id GET /api/v1/reports/{reportName} List all CSV reports linked to one report
RequestApi request_aggregate POST /api/v1/requests/aggregate Request aggregation
RequestApi request_approve POST /api/v1/requests/approve Approve a request
RequestApi request_cancel POST /api/v1/requests/cancel Cancel a request
RequestApi request_certificate_profile GET /api/v1/requests/profiles List profiles
RequestApi request_csv POST /api/v1/requests/csv Export requests
RequestApi request_deny POST /api/v1/requests/deny Deny a request
RequestApi request_dictionary GET /api/v1/requests/search/dictionary Retrieve the request search dictionary
RequestApi request_get GET /api/v1/requests/{id} Retrieve a request
RequestApi request_search POST /api/v1/requests/search Search requests
RequestApi request_submit POST /api/v1/requests/submit Submit a request
RequestApi request_template POST /api/v1/requests/template Retrieve a request template
Rfc5280Api rfc5280_detect POST /api/v1/rfc5280/detect Detect and parse a RFC 5280 related file
Rfc5280Api rfc5280_pkcs10_file POST /api/v1/rfc5280/pkcs10 Decode a pkcs#10 (file)
Rfc5280Api rfc5280_pkcs10_pem GET /api/v1/rfc5280/pkcs10/{pem} Decode a pkcs#10 (url encoded)
Rfc5280Api rfc5280_pkcs12_file POST /api/v1/rfc5280/pkcs12 Extract the certificate and associated private key from a pkcs#12 (file)
Rfc5280Api rfc5280_tc_file POST /api/v1/rfc5280/tc Retrieve the Trust chain from a x509 certificate (file)
Rfc5280Api rfc5280_tc_pem GET /api/v1/rfc5280/tc/{pem} Retrieve the Trust chain from a x509 certificate (url encoded)
Rfc5280Api rfc5280_x509_file POST /api/v1/rfc5280/x509 Decode a x509 certificate (file)
Rfc5280Api rfc5280_x509_pem GET /api/v1/rfc5280/x509/{pem} Decode a x509 certificate (url encoded)
SchedulerTaskApi scheduler_task_add POST /api/v1/scheduler/tasks Register a new scheduled task
SchedulerTaskApi scheduler_task_delete DELETE /api/v1/scheduler/tasks/{id} Delete an existing scheduled task
SchedulerTaskApi scheduler_task_get GET /api/v1/scheduler/tasks/{id} Retrieve an existing scheduled task
SchedulerTaskApi scheduler_task_list GET /api/v1/scheduler/tasks List the existing scheduled task(s)
SchedulerTaskApi scheduler_task_run GET /api/v1/scheduler/tasks/{id}/run Run an existing scheduled task
SchedulerTaskApi scheduler_task_update PUT /api/v1/scheduler/tasks Update an existing scheduled task
SecurityCredentialsApi security_credentials_add POST /api/v1/security/credentials Create new credentials
SecurityCredentialsApi security_credentials_delete DELETE /api/v1/security/credentials/{name} Delete credentials
SecurityCredentialsApi security_credentials_get GET /api/v1/security/credentials/{name} Retrieve credentials
SecurityCredentialsApi security_credentials_list GET /api/v1/security/credentials List credentials
SecurityCredentialsApi security_credentials_update PUT /api/v1/security/credentials Update credentials
SecurityIdentityLocalApi security_identity_local_add POST /api/v1/security/identity/locals Create a local identity
SecurityIdentityLocalApi security_identity_local_delete DELETE /api/v1/security/identity/locals/{identifier} Delete a local identity
SecurityIdentityLocalApi security_identity_local_get GET /api/v1/security/identity/locals/{identifier} Retrieve a local identity
SecurityIdentityLocalApi security_identity_local_list GET /api/v1/security/identity/locals List local identities
SecurityIdentityLocalApi security_identity_local_password_reset POST /api/v1/security/identity/locals/password Reset a password
SecurityIdentityLocalApi security_identity_local_password_reset_request GET /api/v1/security/identity/locals/password/{identifier} Request a password reset
SecurityIdentityLocalApi security_identity_local_password_set PATCH /api/v1/security/identity/locals Set the password for a local identity
SecurityIdentityLocalApi security_identity_local_update PUT /api/v1/security/identity/locals Update a local identity
SecurityIdentityProviderApi security_identity_provider_add POST /api/v1/security/identity/providers Create a new identity provider
SecurityIdentityProviderApi security_identity_provider_delete DELETE /api/v1/security/identity/providers/{name} Delete an identity provider
SecurityIdentityProviderApi security_identity_provider_enabled GET /api/v1/security/identity/providers/dynamic/enabled List the enabled identity provider(s)
SecurityIdentityProviderApi security_identity_provider_get GET /api/v1/security/identity/providers/{name} Retrieve a existing identity provider
SecurityIdentityProviderApi security_identity_provider_list GET /api/v1/security/identity/providers List all the identity provider(s)
SecurityIdentityProviderApi security_identity_provider_search POST /api/v1/security/identity/providers/search Retrieve the provider of a principal
SecurityIdentityProviderApi security_identity_provider_update PUT /api/v1/security/identity/providers Update an existing identity provider
SecurityPasswordpolicyApi password_policy_add POST /api/v1/security/passwordpolicies Create a password policy
SecurityPasswordpolicyApi password_policy_delete DELETE /api/v1/security/passwordpolicies/{name} Delete a password policy
SecurityPasswordpolicyApi password_policy_generate GET /api/v1/security/passwordpolicies/{name}/generate Generate a password with a password policy
SecurityPasswordpolicyApi password_policy_get GET /api/v1/security/passwordpolicies/{name} Retrieve a password policy
SecurityPasswordpolicyApi password_policy_list GET /api/v1/security/passwordpolicies List password policies
SecurityPasswordpolicyApi password_policy_update PUT /api/v1/security/passwordpolicies Update a password policy
SecurityPrincipalApi security_principal_authenticate GET /api/v1/security/principals/authenticate Authenticate a principal and redirect to the specified redirect URL
SecurityPrincipalApi security_principal_logout GET /api/v1/security/principals/logout Log out an authenticated principal and flush any cached authorization(s)
SecurityPrincipalApi security_principal_self GET /api/v1/security/principals/self Return the authenticated principal
SecurityPrincipalinfoApi scurity_principal_info_get GET /api/v1/security/principalinfos/{identifier} Retrieve a principal information
SecurityPrincipalinfoApi security_principal_info_add POST /api/v1/security/principalinfos Create a new principal
SecurityPrincipalinfoApi security_principal_info_delete DELETE /api/v1/security/principalinfos/{identifier} Delete a principal
SecurityPrincipalinfoApi security_principal_info_search POST /api/v1/security/principalinfos/search Search for principal information
SecurityPrincipalinfoApi security_principal_info_update PUT /api/v1/security/principalinfos Update a principal's information
SecurityRoleApi security_role_add POST /api/v1/security/roles Create a new role
SecurityRoleApi security_role_delete DELETE /api/v1/security/roles/{name} Delete a role
SecurityRoleApi security_role_get GET /api/v1/security/roles/{name} Retrieve a role
SecurityRoleApi security_role_list GET /api/v1/security/roles List roles
SecurityRoleApi security_role_members_add POST /api/v1/security/roles/{name}/members Add members to a role
SecurityRoleApi security_role_members_get GET /api/v1/security/roles/{name}/members Retrieve a role's members
SecurityRoleApi security_role_members_remove DELETE /api/v1/security/roles/{name}/members Remove members from a role
SecurityRoleApi security_role_update PUT /api/v1/security/roles Update a role
SecurityScimprofileApi security_scimprofile_add POST /api/v1/security/scim/profiles Create a Scim profile
SecurityScimprofileApi security_scimprofile_delete DELETE /api/v1/security/scim/profiles/{name} Delete a Scim profile
SecurityScimprofileApi security_scimprofile_get GET /api/v1/security/scim/profiles/{name} Retrieve a Scim profile
SecurityScimprofileApi security_scimprofile_list GET /api/v1/security/scim/profiles List Scim profiles
SecurityScimprofileApi security_scimprofile_update PUT /api/v1/security/scim/profiles Update Scim profile
SecurityTeamApi security_team_add POST /api/v1/security/teams Create a new team
SecurityTeamApi security_team_delete DELETE /api/v1/security/teams/{name} Delete a team
SecurityTeamApi security_team_get GET /api/v1/security/teams/{name} Retrieve a team
SecurityTeamApi security_team_list GET /api/v1/security/teams List the team(s)
SecurityTeamApi security_team_members_add POST /api/v1/security/teams/{name}/members Add members to a team
SecurityTeamApi security_team_members_get GET /api/v1/security/teams/{name}/members Retrieve a team's members
SecurityTeamApi security_team_members_remove DELETE /api/v1/security/teams/{name}/members Remove members from a team
SecurityTeamApi security_team_switch PATCH /api/v1/security/teams/{previousTeam}/{newTeam} Transfer objects from a team to another
SecurityTeamApi security_team_update PUT /api/v1/security/teams Update a team
SystemConfigurationApi system_configuration_get GET /api/v1/system/configuration/{type} Upsert a system configuration
SystemConfigurationApi system_configuration_list GET /api/v1/system/configuration List the existing system configurations
SystemConfigurationApi system_configuration_upsert PUT /api/v1/system/configuration Upsert a system configuration
TeamApi team_members_add POST /api/v1/teams/{name}/members Add members to a team
TeamApi team_members_get GET /api/v1/teams/{name}/members Retrieve a team's members
TeamApi team_members_remove DELETE /api/v1/teams/{name}/members Remove members from a team
TemplatestringApi computationrule_eval POST /api/v1/templatestring/playground Evaluate a computation rule and its dictionary
ThirdpartyConnectorApi thirdparty_connector_add POST /api/v1/thirdparty/connectors Register a new third party connector
ThirdpartyConnectorApi thirdparty_connector_delete DELETE /api/v1/thirdparty/connectors/{name} Delete an existing third party connector
ThirdpartyConnectorApi thirdparty_connector_get GET /api/v1/thirdparty/connectors/{name} Retrieve an existing third party connector
ThirdpartyConnectorApi thirdparty_connector_list GET /api/v1/thirdparty/connectors List the existing third party connector(s)
ThirdpartyConnectorApi thirdparty_connector_retry PATCH /api/v1/thirdparty/connectors/{name} Retry failed triggers on a connector
ThirdpartyConnectorApi thirdparty_connector_update PUT /api/v1/thirdparty/connectors Update an existing third party connector
TriggerApi trigger_add POST /api/v1/triggers Register a new trigger
TriggerApi trigger_delete DELETE /api/v1/triggers/{name} Delete an existing trigger
TriggerApi trigger_get GET /api/v1/triggers/{name} Retrieve an existing trigger
TriggerApi trigger_list GET /api/v1/triggers List the existing trigger(s)
TriggerApi trigger_test PATCH /api/v1/triggers Test a trigger
TriggerApi trigger_update PUT /api/v1/triggers Update an existing trigger
TrustchainApi trustchain_get GET /api/v1/trustchains/{name} Retrieve the trust chain for a specific public Certificate Authority
TrustchainApi trustchain_list GET /api/v1/trustchains List the public trust chains
WcceApi wcce_forest_mapping_add POST /api/v1/wcce/forests Register a new WCCE forest mapping
WcceApi wcce_forest_mapping_delete DELETE /api/v1/wcce/forests/{name} Delete an existing WCCE forest mapping
WcceApi wcce_forest_mapping_get GET /api/v1/wcce/forests/{name} Retrieve an existing WCCE forest mapping
WcceApi wcce_forest_mapping_list GET /api/v1/wcce/forests List the existing WCCE forest mapping(s)
WcceApi wcce_forest_mapping_update PUT /api/v1/wcce/forests Update an existing WCCE forest mapping

Documentation For Models

Documentation For Authorization

Authentication schemes defined for the API:

apiId

  • Type: API key
  • API key parameter name: X-API-ID
  • Location: HTTP header

apiKey

  • Type: API key
  • API key parameter name: X-API-KEY
  • Location: HTTP header

cookieAuth

  • Type: API key
  • API key parameter name: PLAY_SESSION
  • Location:

Author

cloud@evertrust.fr

Metadata

Release files for evertrust-horizon 2.8.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for evertrust-horizon 2.8.0
File Size Uploaded Provenance Actions
evertrust_horizon-2.8.0.tar.gz 862.0 kB With provenance Details for evertrust_horizon-2.8.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for evertrust-horizon 2.8.0
File Interpreter ABI Platform Actions
evertrust_horizon-2.8.0-py3-none-any.whl Python 3 none any Details for evertrust_horizon-2.8.0-py3-none-any.whl

Total release size: 6.0 MB

Release files / evertrust_horizon-2.8.0.tar.gz

Download URL evertrust_horizon-2.8.0.tar.gz
Size 862.0 kB
Tags Source
SHA-256 checksum
How to use checksums
b2170d4c3b4633f6f9bd1d4310f3f3940baca49448fd2548c7d8ab37ecffcbd9
BLAKE2b-256 checksum
How to use checksums
77fa7ae13c2aae90a3ddb740a0b59492728dc3558c906f32f9c1246a23e78e2b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 22, 2026.

Transparency log

Release files / evertrust_horizon-2.8.0-py3-none-any.whl

Download URL evertrust_horizon-2.8.0-py3-none-any.whl
Size 5.1 MB
Tags Python 3
SHA-256 checksum
How to use checksums
1137fa30b254a4d98618c5bb3477783d917bc609ef5639b911eeec6d54fb951c
BLAKE2b-256 checksum
How to use checksums
7090a9ecd7d53ee3f1899dda306c2611d8483242786c968d00d2b9f840f15a77
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 22, 2026.

Transparency log

Security for evertrust-horizon 2.8.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for evertrust_horizon-2.8.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 22, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page