List gate servers (deduped)
Returns one row per distinct gate server (deduped by analytics_correlation_id, latest event per server). Backed by the shared events_dataset.external_events_json firehose today; a dedicated table is a follow-up.
Default lookback when neither start_time nor end_time is provided is 7 days (matches gate's heartbeat cadence so a fresh open reliably lists all live servers). If only one bound is provided, the other is derived using the 7-day default. Same 30-day cap applies when both bounds are provided (end_time - start_time > 30d is rejected with HTTP 400).
Query Parameters
- limit integer
Possible values:
<= 500The maximum number of items to return. Default 50.
- offset integer
The number of the first item to return.
- start_time date-time
RFC3339 timestamp. Inclusive lower bound on
publish_time. - end_time date-time
RFC3339 timestamp. Exclusive upper bound on
publish_time. - filter string
SCIM 2.0 filter over
GET /gate/server-starts.Fields (all optional):
- event_id: exact-match on the emitted event's UUID.
- analytics_correlation_id: exact-match on the emitting gate process.
- version, variant, build_commit: exact-match on the gate build tuple.
- instance_id: exact-match on the persistent gate installation UUID.
- service_name: exact-match on the OpenTelemetry
service.name. - client_ip_address: exact-match on the emitting gate's client IP.
Supported operators:
- eq, ne (all fields). Multi-value lookups: chain with
or, e.g.foo eq "A" or foo eq "B". The SCIM 2.0 filter parser used here doesn't implementin.
Example: version eq "1.2.3" and variant eq "enterprise"
Header Parameters
- SlashID-OrgID string required
The organization ID
Example: af5fbd30-7ce7-4548-8b30-4cd59cb2aba1
- 200
- 400
- 401
- 403
OK
- application/json
- Schema
- Example (from schema)
Schema
meta object
pagination object
limit integeroffset integertotal_count int64cursor_pagination object
limit integercursor stringtotal_count int64errors object[]
httpcode integermessage stringresult object[]
event_name stringPossible values: [
AuthenticationSucceeded_v1,AuthenticationFailed_v1,PersonCreated_v1,AnonymousPersonCreated_v1,PersonDeleted_v1,VirtualPageLoaded_v1,SlashIDSDKLoaded_v1,PersonIdentified_v1,PersonLoggedOut_v1,TokenMinted_v1,AnonymousTokenMinted_v1,PasswordChanged_v1,GdprConsentsChanged_v1,GateServerStarted_v1,GateRequestHandled_v1,GateHeartbeat_v1,PermissionCreated_InRegion_v1,PermissionCreated_v1,PermissionDeleted_InRegion_v1,PermissionDeleted_v1,RoleCreated_InRegion_v1,RoleCreated_v1,RoleDeleted_InRegion_v1,RoleDeleted_v1,RoleUpdated_InRegion_v1,RoleUpdated_v1,RolesSetToPerson_InRegion_v1,RolesSetToPerson_v1,PermissionsSetToPerson_InRegion_v1,PermissionsSetToPerson_v1,MitmAttackDetected_v1,PermissionUpdated_InRegion_v1,PermissionUpdated_v1,SuborganizationCreated_InRegion_v1,SuborganizationCreated_v1,OAuth2ClientCreated_InRegion_v1,OAuth2ClientCreated_v1,AWSIAMUserCreated_v1,AWSIAMRoleCreated_v1,AWSIAMRoleInlinePoliciesUpdated_v1,AWSIAMRoleManagedPoliciesUpdated_v1,AWSIAMRoleAssumeRolePolicyUpdated_v1,AWSIAMRolePermissionsBoundaryUpdated_v1,AWSIAMRoleDeleted_v1,GCPServiceAccountCreated_v1,GCPRoleCreated_v1,GCPIAMPolicyBindingUpdated_v1,GCPServiceAccountDeleted_v1,ActiveDirectorySPNCreated_v1,ActiveDirectorySPNRoleUpdated_v1,ActiveDirectorySPNDeleted_v1,ActiveDirectoryUserCreated_v1]service_name stringHuman-readable service identity — the OpenTelemetry
service.nameattribute Gate also emits on traces and logs. Typically set by the operator to the deployment name (e.g. "gate-demo", "slashid-backend"); defaults to "gate".instance_id uuidStable UUID identifying a Gate installation across restarts. Generated on first boot and persisted to disk at monitoring.instance_id_file. When the file cannot be read or written, Gate falls back to the same UUID as analytics_correlation_id — so instance_id == analytics_correlation_id reliably signals "no persistent identity available".
version object
version stringGate release version
variant stringGate release variant (enterprice, free, etc)
build_commit stringbuild_date date-timebuilt_by stringcomment stringA user-provided string that can be used to identify the server
config object
plugins object[]
Catalog of every configured plugin definition, in plugin_index order.
plugin_index integerplugin_id stringplugin_type stringPossible values: [
opa,ratelimit,anonymizer,tokenizer,validate-jwt,validate-oauth2-token,request-oauth2-authenticator,token-exchange,token-translation-upgrade,token-translation-downgrade,token-reminting,mirroring,authentication-proxy,enforce-openapi-security,request-validator,e2e-testing]config object
oneOf- MOD1
- MOD2
- MOD3
- MOD4
- MOD5
- MOD6
- MOD7
- MOD8
- MOD9
- MOD10
- MOD11
- MOD12
- MOD13
- MOD14
- MOD15
- MOD16
plugin_type stringPossible values: [
opa]policy_decision_path stringmonitoring_mode booleancapture_request_body booleanmax_request_body_size integerbundle_source stringPossible values: [
inline,file,http]bundle_url_host stringScheme + host only when bundle_source=http; no path/query.
intercept_method stringPossible values: [
request,response,request_response]policy_bundle object
Loaded policy bundle files, keyed by path within the bundle (e.g.
auth.rego,subdir/permissions.rego). For inline policies the synthetic path isinline.rego. Base data, when present, appears under the synthetic pathdata.json.Present only when the plugin's
config.observability.policy_bundleis true AND the bundle's total uncompressed size fits within Gate's 32 KiB cap. All-or-nothing: bundles over the cap omit this field entirely.property name*stringplugin_type stringPossible values: [
ratelimit]limiter_type stringPossible values: [
memory,redis_module,redis_lua,redis_unlocked]monitoring_mode booleanlimits object[]
Operator-configured limit rules from the static config's Limits list. Fields are pre-resolution —
keyandrequest_fieldare the templates, not the runtime-suffixedkey/<field-value>shape that carries per-user identity. Low-cardinality by construction — one entry per configured rule. Order matches config order.key stringOperator-authored limit-key template. Never carries runtime resolutions — those are per-user identity and stay off boot events.
comment stringOperator-supplied comment on the rule.
burst numberMaximum burst (from RateLimitConfigLimit.Burst). Zero when the rule is interval-configured instead.
interval_seconds numberInterval between operations, in seconds. Zero when the rule is burst-configured.
window_seconds numberTime to reach max burst capacity, in seconds.
max_throttle_seconds numberMaximum wait if the resource is not immediately available; requests are throttled instead of aborted. Zero when throttling is disabled.
request_field stringJSONPath expression that resolves against the request to key the limit (e.g.
$.request.parsed_token.payload.sub). Absent means the rule applies globally without per-field partitioning.map_limits_endpoint_host stringScheme + host of the optional dynamic limits-mapping endpoint. Absent when the rate-limit plugin uses only its static Limits list.
plugin_type stringPossible values: [
anonymizer]max_body_size integeranalyzer_configured booleanTrue iff the Presidio Analyzer base URL is configured. The URL itself is not shipped.
analyzer_language stringtrufflehog_configured booleanTrue iff the TruffleHog analyzer base URL is configured. The URL itself is not shipped.
anonymizer_configured booleanTrue iff the Presidio Anonymizer base URL is configured. The URL itself is not shipped.
fields_enabled_count integerNumber of enabled JSONPath field selectors. Selector expressions are not shipped (may reveal API shape).
fields_disabled_count integerNumber of disabled JSONPath field selectors. Selector expressions are not shipped (may reveal API shape).
plugin_type stringPossible values: [
tokenizer]header_with_proxy_token stringName of the header carrying the proxy token. The token value itself is never shipped.
secret_engine stringPossible values: [
aws,gcp,azure,hashi_vault,slashid]cache_duration_seconds integerCache duration for resolved secrets, in seconds.
plugin_type stringPossible values: [
validate-jwt]mode stringPossible values: [
slashid,direct_jwks]header_with_token stringName of the header carrying the JWT (not the token value).
cookie_with_token stringName of the cookie carrying the JWT (not the token value).
token_schema_configured booleanTrue when a JSON schema for token payload validation is configured. Schema contents are never shipped.
slashid_org_id stringSlashID organization ID (SlashID mode only). The API key is never shipped.
slashid_required_groups_count integerNumber of required SlashID groups. Group names are not shipped (may reveal internal RBAC).
slashid_max_groups_info_age_seconds integerMax age of cached SlashID groups info, in seconds.
slashid_base_url_host stringScheme + host of the SlashID base URL (SlashID mode only); no path/query.
jwks_url_host stringScheme + host of the JWKS URL (direct-jwks mode only); no path/query (which may embed tokens).
jwks_refresh_interval_seconds integerJWKS refresh interval, in seconds.
jwt_allowed_algorithms string[]Allowed JWT signing algorithms (e.g. RS256, HS256).
jwt_expected_issuer stringExpected JWT issuer identifier; operator-authored routing check.
jwt_expected_audience stringExpected JWT audience identifier.
plugin_type stringPossible values: [
validate-oauth2-token]token_format stringPossible values: [
jwt,opaque]header_with_token stringName of the header carrying the OAuth2 token (not the token value).
required_scopes_count integerNumber of globally required scopes. Scope names are not shipped (may reveal internal permission model).
method_required_scopes_count integerNumber of configured per-method scope entries. Scope names are not shipped.
allowed_client_ids_configured booleanTrue iff at least one allowed client ID is configured. The IDs themselves are not shipped.
allowed_ip_addresses_configured booleanTrue iff at least one allowed IP address is configured. The addresses themselves are not shipped.
include_required_scopes_in_introspection_request booleanWhether required scopes are sent alongside the token in the introspection request.
jwks_url_host stringScheme + host of the JWKS URL (JWT format only); no path/query.
jwks_refresh_interval_seconds integerJWKS refresh interval, in seconds.
jwt_allowed_algorithms string[]Allowed JWT signing algorithms (e.g. RS256, HS256).
jwt_expected_issuer stringExpected JWT issuer identifier.
jwt_expected_audience stringExpected JWT audience identifier.
token_introspection_url_host stringScheme + host of the token introspection URL (opaque format only); no path/query.
token_introspection_auth_mode stringPossible values: [
client_credentials,bearer,none]plugin_type stringPossible values: [
request-oauth2-authenticator]header_for_token stringName of the header where the minted OAuth2 token is written. Not the token value.
validate_url_host stringScheme + host of the validate URL (API-key / HTTP scheme flows); no path/query.
oauth2_token_format stringPossible values: [
jwt,opaque]oauth2_scopes_count integerNumber of requested OAuth2 scopes. Scope names are not shipped (may reveal internal permission model).
oauth2_token_creation_endpoint_host stringScheme + host of the OAuth2 token creation endpoint; no path/query.
slashid_org_id stringSlashID organization ID. The API key is never shipped.
include_required_scopes_in_oauth2_introspection_request booleanWhether required scopes are sent alongside the token in the introspection request (opaque tokens only).
oauth2_jwks_url_host stringScheme + host of the JWKS URL (JWT format only); no path/query.
oauth2_jwks_refresh_interval_seconds integerJWKS refresh interval, in seconds.
oauth2_jwt_allowed_algorithms string[]Allowed JWT signing algorithms (e.g. RS256, HS256).
oauth2_jwt_expected_issuer stringExpected JWT issuer identifier.
oauth2_jwt_expected_audience stringExpected JWT audience identifier.
oauth2_token_introspection_url_host stringScheme + host of the token introspection URL (opaque format only); no path/query.
oauth2_token_introspection_auth_mode stringPossible values: [
client_credentials,bearer,none]secret_engine stringPossible values: [
aws,gcp,azure,hashi_vault,none]plugin_type stringPossible values: [
token-exchange]slashid_base_url_host stringScheme + host of the SlashID base URL; no path/query.
slashid_org_id stringSlashID organization ID. The API key is never shipped.
subject_source stringPossible values: [
header,cookie]subject_header_or_cookie_name stringName of the subject header or cookie. Not the token value.
subject_token_type stringRFC 8693 subject token type URN (e.g. urn:ietf:params:oauth:token-type:jwt).
subject_strip_after_exchange booleanWhether the subject token is stripped from the proxied request after exchange.
actor_mode stringPossible values: [
oauth_client,gate_svid,request_actor]requested_token_type stringRFC 8693 requested token type URN (e.g. urn:ietf:params:oauth:token-type:access_token).
scope_configured booleanTrue iff a scope string is configured for the exchange. Scope values are not shipped (may reveal internal permission model).
audience_count integerNumber of configured audience entries. Audience identifiers are not shipped.
resource_count integerNumber of configured resource entries. Resource identifiers are not shipped.
requested_expires_in integerRequested lifetime of the exchanged token, in seconds.
output_header stringName of the header the exchanged token is written to. Not the token value.
output_prefix_configured booleanTrue iff a non-empty output prefix (e.g.
Bearer) is configured.upstream_request_timeout_seconds integerTimeout for the upstream exchange call, in seconds.
actor_svid_source stringPossible values: [
file,env,workload_api]actor_svid_file_path_configured booleanTrue iff a file path is configured (actor_svid_source=file). The path itself is not shipped.
actor_svid_file_reload_seconds integerSVID file re-read TTL, in seconds (actor_svid_source=file).
actor_svid_env_var_configured booleanTrue iff an env var name is configured (actor_svid_source=env). The env var name and value are not shipped.
actor_workload_api_socket_configured booleanTrue iff a Workload API socket is configured (actor_svid_source=workload_api). The socket path is not shipped.
actor_workload_api_audience stringSVID audience requested from the SPIRE Workload API (actor_svid_source=workload_api).
actor_source stringPossible values: [
header,cookie]actor_header_or_cookie_name stringName of the actor header or cookie (actor_mode=request_actor). Not the token value.
actor_strip_after_exchange booleanWhether the actor token is stripped from the proxied request after exchange (actor_mode=request_actor).
oauth_client_configured booleanTrue iff an OAuth client ID is configured (used for Basic auth on the exchange call, and as the actor source under actor_mode=oauth_client). The client secret is never shipped.
plugin_type stringPossible values: [
token-translation-upgrade]token_source stringPossible values: [
header,cookie]token_header_or_cookie_name stringName of the header or cookie carrying the legacy token. Not the token value.
map_token_endpoint_host stringScheme + host of the operator-provided map-token endpoint; no path/query.
slashid_base_url_host stringScheme + host of the SlashID base URL; no path/query.
slashid_org_id stringSlashID organization ID. The API key is never shipped.
custom_claims_allowed_count integerNumber of configured allow-list JSONPath selectors for custom claims. Selector expressions are not shipped (may reveal internal claim taxonomy).
custom_claims_denied_count integerNumber of configured deny-list JSONPath selectors for custom claims. Selector expressions are not shipped (may reveal internal claim taxonomy).
plugin_type stringPossible values: [
token-translation-downgrade]slashid_base_url_host stringScheme + host of the SlashID base URL; no path/query.
slashid_org_id stringSlashID organization ID. The API key is never shipped.
mint_token_endpoint_host stringScheme + host of the operator-provided mint-token endpoint; no path/query.
retrieve_handles booleanWhether Gate looks up person handles from SlashID before calling the operator-provided mint endpoint.
plugin_type stringPossible values: [
token-reminting]token_source stringPossible values: [
header,cookie]token_header_or_cookie_name stringName of the header or cookie carrying the incoming token. Not the token value.
remint_token_endpoint_host stringScheme + host of the operator-provided remint-token endpoint; no path/query.
keep_old_token booleanWhether the incoming token is preserved in the proxied request after reminting.
plugin_type stringPossible values: [
mirroring]header_with_token stringName of the header carrying the incoming token. Not the token value.
map_token_endpoint_host stringScheme + host of the operator-provided map-token endpoint; no path/query.
persons_create_endpoint_host stringScheme + host of the SlashID persons create endpoint; no path/query.
slashid_org_id stringSlashID organization ID. The API key is never shipped.
plugin_type stringPossible values: [
authentication-proxy]slashid_base_url_host stringScheme + host of the SlashID base URL; no path/query.
slashid_org_id stringSlashID organization ID. The API key is never shipped.
online_tokens_validation booleanWhether the plugin performs online validation of tokens against SlashID.
online_tokens_validation_timeout_seconds integerTimeout for online token validation, in seconds.
required_groups_count integerNumber of groups a user must belong to be considered authorized. Group names are not shipped (may reveal RBAC structure).
max_groups_info_age_seconds integerMaximum age of cached group information, in seconds.
login_page_theme stringLogin page theme identifier (e.g.
auto,light,dark).login_page_logo_url_host stringScheme + host of the login page logo URL; no path/query.
login_page_heading_configured booleanTrue iff a login page heading is configured. The heading text is not shipped (customer-authored, potentially PII/branding-sensitive).
login_page_factors_count integerNumber of configured login page authentication factors. Factor details are not shipped (may reveal authentication strategy).
store_last_handle booleanWhether the login page stores the last used handle in the browser.
plugin_type stringPossible values: [
enforce-openapi-security]openapi_spec_url_host stringScheme + host of the OpenAPI spec URL; no path/query. Spec contents are not shipped.
openapi_spec_format stringPossible values: [
yaml,json]allow_requests_not_in_spec booleanWhether requests that do not match any operation in the spec are allowed through.
validate_url_host stringScheme + host of the validate URL (API-key / HTTP scheme flows); no path/query.
oauth2_token_format stringPossible values: [
jwt,opaque]oauth2_token_source stringPossible values: [
header,cookie]oauth2_token_header_or_cookie_name stringName of the header or cookie carrying the OAuth2 token. Not the token value.
include_required_scopes_in_oauth2_introspection_request booleanWhether required scopes are sent alongside the token in the introspection request (opaque tokens only).
oauth2_jwks_url_host stringScheme + host of the JWKS URL (JWT format only); no path/query.
oauth2_jwks_refresh_interval_seconds integerJWKS refresh interval, in seconds.
oauth2_jwt_allowed_algorithms string[]Allowed JWT signing algorithms (e.g. RS256, HS256).
oauth2_jwt_expected_issuer stringExpected JWT issuer identifier.
oauth2_jwt_expected_audience stringExpected JWT audience identifier.
oauth2_token_introspection_url_host stringScheme + host of the token introspection URL (opaque format only); no path/query.
oauth2_token_introspection_auth_mode stringPossible values: [
client_credentials,bearer,none]plugin_type stringPossible values: [
request-validator]validate_url_host stringScheme + host of the external request validator URL; no path/query.
plugin_type stringPossible values: [
e2e-testing]routes object[]
Every routing branch, in the order Gate consults them at request time: URL patterns in configured declaration order first, then the default branch (its
patternis absent) as the last-resort match-anything entry. routes[len-1] is always the default.pattern stringfnmatch pattern matched against
Host + Path; absent for the default branch (the last entry inroutes[]).target stringEffective upstream URL for this route — denormalized. If the URL pattern's own config specifies a target, that value; otherwise the default branch's target. Absent only when neither this route nor the default configured a target (typically
ext_auth/aws_lambda_authmodes, or a brokenproxyconfig).transparent booleanOnly meaningful on the default branch, and only when
targetis also absent. When true, unmatched requests with no default target are forwarded to the client's original destination host. When false (schema-default and Gate-default), unmatched requests with no default target are rejected. Ignored on non-default branches.ext_auth_response stringPossible values: [
allow,deny]Only meaningful on the default branch, and only when Gate is running in
ext_authmode.aws_lambda_auth_response stringPossible values: [
allow,deny]Only meaningful on the default branch, and only when Gate is running in
aws_lambda_authmode.plugins object[]
Plugins that effectively run on this route, in plugin_index order. Presence in this list implies enabled; disabled plugins are omitted.
plugin_id stringReferences GateConfigPlugin.plugin_id in the catalog.
config object
oneOf- MOD1
- MOD2
- MOD3
- MOD4
- MOD5
- MOD6
- MOD7
- MOD8
- MOD9
- MOD10
- MOD11
- MOD12
- MOD13
- MOD14
- MOD15
- MOD16
plugin_type stringPossible values: [
opa]policy_decision_path stringmonitoring_mode booleancapture_request_body booleanmax_request_body_size integerbundle_source stringPossible values: [
inline,file,http]bundle_url_host stringScheme + host only when bundle_source=http; no path/query.
intercept_method stringPossible values: [
request,response,request_response]policy_bundle object
Loaded policy bundle files, keyed by path within the bundle (e.g.
auth.rego,subdir/permissions.rego). For inline policies the synthetic path isinline.rego. Base data, when present, appears under the synthetic pathdata.json.Present only when the plugin's
config.observability.policy_bundleis true AND the bundle's total uncompressed size fits within Gate's 32 KiB cap. All-or-nothing: bundles over the cap omit this field entirely.property name*stringplugin_type stringPossible values: [
ratelimit]limiter_type stringPossible values: [
memory,redis_module,redis_lua,redis_unlocked]monitoring_mode booleanlimits object[]
Operator-configured limit rules from the static config's Limits list. Fields are pre-resolution —
keyandrequest_fieldare the templates, not the runtime-suffixedkey/<field-value>shape that carries per-user identity. Low-cardinality by construction — one entry per configured rule. Order matches config order.key stringOperator-authored limit-key template. Never carries runtime resolutions — those are per-user identity and stay off boot events.
comment stringOperator-supplied comment on the rule.
burst numberMaximum burst (from RateLimitConfigLimit.Burst). Zero when the rule is interval-configured instead.
interval_seconds numberInterval between operations, in seconds. Zero when the rule is burst-configured.
window_seconds numberTime to reach max burst capacity, in seconds.
max_throttle_seconds numberMaximum wait if the resource is not immediately available; requests are throttled instead of aborted. Zero when throttling is disabled.
request_field stringJSONPath expression that resolves against the request to key the limit (e.g.
$.request.parsed_token.payload.sub). Absent means the rule applies globally without per-field partitioning.map_limits_endpoint_host stringScheme + host of the optional dynamic limits-mapping endpoint. Absent when the rate-limit plugin uses only its static Limits list.
plugin_type stringPossible values: [
anonymizer]max_body_size integeranalyzer_configured booleanTrue iff the Presidio Analyzer base URL is configured. The URL itself is not shipped.
analyzer_language stringtrufflehog_configured booleanTrue iff the TruffleHog analyzer base URL is configured. The URL itself is not shipped.
anonymizer_configured booleanTrue iff the Presidio Anonymizer base URL is configured. The URL itself is not shipped.
fields_enabled_count integerNumber of enabled JSONPath field selectors. Selector expressions are not shipped (may reveal API shape).
fields_disabled_count integerNumber of disabled JSONPath field selectors. Selector expressions are not shipped (may reveal API shape).
plugin_type stringPossible values: [
tokenizer]header_with_proxy_token stringName of the header carrying the proxy token. The token value itself is never shipped.
secret_engine stringPossible values: [
aws,gcp,azure,hashi_vault,slashid]cache_duration_seconds integerCache duration for resolved secrets, in seconds.
plugin_type stringPossible values: [
validate-jwt]mode stringPossible values: [
slashid,direct_jwks]header_with_token stringName of the header carrying the JWT (not the token value).
cookie_with_token stringName of the cookie carrying the JWT (not the token value).
token_schema_configured booleanTrue when a JSON schema for token payload validation is configured. Schema contents are never shipped.
slashid_org_id stringSlashID organization ID (SlashID mode only). The API key is never shipped.
slashid_required_groups_count integerNumber of required SlashID groups. Group names are not shipped (may reveal internal RBAC).
slashid_max_groups_info_age_seconds integerMax age of cached SlashID groups info, in seconds.
slashid_base_url_host stringScheme + host of the SlashID base URL (SlashID mode only); no path/query.
jwks_url_host stringScheme + host of the JWKS URL (direct-jwks mode only); no path/query (which may embed tokens).
jwks_refresh_interval_seconds integerJWKS refresh interval, in seconds.
jwt_allowed_algorithms string[]Allowed JWT signing algorithms (e.g. RS256, HS256).
jwt_expected_issuer stringExpected JWT issuer identifier; operator-authored routing check.
jwt_expected_audience stringExpected JWT audience identifier.
plugin_type stringPossible values: [
validate-oauth2-token]token_format stringPossible values: [
jwt,opaque]header_with_token stringName of the header carrying the OAuth2 token (not the token value).
required_scopes_count integerNumber of globally required scopes. Scope names are not shipped (may reveal internal permission model).
method_required_scopes_count integerNumber of configured per-method scope entries. Scope names are not shipped.
allowed_client_ids_configured booleanTrue iff at least one allowed client ID is configured. The IDs themselves are not shipped.
allowed_ip_addresses_configured booleanTrue iff at least one allowed IP address is configured. The addresses themselves are not shipped.
include_required_scopes_in_introspection_request booleanWhether required scopes are sent alongside the token in the introspection request.
jwks_url_host stringScheme + host of the JWKS URL (JWT format only); no path/query.
jwks_refresh_interval_seconds integerJWKS refresh interval, in seconds.
jwt_allowed_algorithms string[]Allowed JWT signing algorithms (e.g. RS256, HS256).
jwt_expected_issuer stringExpected JWT issuer identifier.
jwt_expected_audience stringExpected JWT audience identifier.
token_introspection_url_host stringScheme + host of the token introspection URL (opaque format only); no path/query.
token_introspection_auth_mode stringPossible values: [
client_credentials,bearer,none]plugin_type stringPossible values: [
request-oauth2-authenticator]header_for_token stringName of the header where the minted OAuth2 token is written. Not the token value.
validate_url_host stringScheme + host of the validate URL (API-key / HTTP scheme flows); no path/query.
oauth2_token_format stringPossible values: [
jwt,opaque]oauth2_scopes_count integerNumber of requested OAuth2 scopes. Scope names are not shipped (may reveal internal permission model).
oauth2_token_creation_endpoint_host stringScheme + host of the OAuth2 token creation endpoint; no path/query.
slashid_org_id stringSlashID organization ID. The API key is never shipped.
include_required_scopes_in_oauth2_introspection_request booleanWhether required scopes are sent alongside the token in the introspection request (opaque tokens only).
oauth2_jwks_url_host stringScheme + host of the JWKS URL (JWT format only); no path/query.
oauth2_jwks_refresh_interval_seconds integerJWKS refresh interval, in seconds.
oauth2_jwt_allowed_algorithms string[]Allowed JWT signing algorithms (e.g. RS256, HS256).
oauth2_jwt_expected_issuer stringExpected JWT issuer identifier.
oauth2_jwt_expected_audience stringExpected JWT audience identifier.
oauth2_token_introspection_url_host stringScheme + host of the token introspection URL (opaque format only); no path/query.
oauth2_token_introspection_auth_mode stringPossible values: [
client_credentials,bearer,none]secret_engine stringPossible values: [
aws,gcp,azure,hashi_vault,none]plugin_type stringPossible values: [
token-exchange]slashid_base_url_host stringScheme + host of the SlashID base URL; no path/query.
slashid_org_id stringSlashID organization ID. The API key is never shipped.
subject_source stringPossible values: [
header,cookie]subject_header_or_cookie_name stringName of the subject header or cookie. Not the token value.
subject_token_type stringRFC 8693 subject token type URN (e.g. urn:ietf:params:oauth:token-type:jwt).
subject_strip_after_exchange booleanWhether the subject token is stripped from the proxied request after exchange.
actor_mode stringPossible values: [
oauth_client,gate_svid,request_actor]requested_token_type stringRFC 8693 requested token type URN (e.g. urn:ietf:params:oauth:token-type:access_token).
scope_configured booleanTrue iff a scope string is configured for the exchange. Scope values are not shipped (may reveal internal permission model).
audience_count integerNumber of configured audience entries. Audience identifiers are not shipped.
resource_count integerNumber of configured resource entries. Resource identifiers are not shipped.
requested_expires_in integerRequested lifetime of the exchanged token, in seconds.
output_header stringName of the header the exchanged token is written to. Not the token value.
output_prefix_configured booleanTrue iff a non-empty output prefix (e.g.
Bearer) is configured.upstream_request_timeout_seconds integerTimeout for the upstream exchange call, in seconds.
actor_svid_source stringPossible values: [
file,env,workload_api]actor_svid_file_path_configured booleanTrue iff a file path is configured (actor_svid_source=file). The path itself is not shipped.
actor_svid_file_reload_seconds integerSVID file re-read TTL, in seconds (actor_svid_source=file).
actor_svid_env_var_configured booleanTrue iff an env var name is configured (actor_svid_source=env). The env var name and value are not shipped.
actor_workload_api_socket_configured booleanTrue iff a Workload API socket is configured (actor_svid_source=workload_api). The socket path is not shipped.
actor_workload_api_audience stringSVID audience requested from the SPIRE Workload API (actor_svid_source=workload_api).
actor_source stringPossible values: [
header,cookie]actor_header_or_cookie_name stringName of the actor header or cookie (actor_mode=request_actor). Not the token value.
actor_strip_after_exchange booleanWhether the actor token is stripped from the proxied request after exchange (actor_mode=request_actor).
oauth_client_configured booleanTrue iff an OAuth client ID is configured (used for Basic auth on the exchange call, and as the actor source under actor_mode=oauth_client). The client secret is never shipped.
plugin_type stringPossible values: [
token-translation-upgrade]token_source stringPossible values: [
header,cookie]token_header_or_cookie_name stringName of the header or cookie carrying the legacy token. Not the token value.
map_token_endpoint_host stringScheme + host of the operator-provided map-token endpoint; no path/query.
slashid_base_url_host stringScheme + host of the SlashID base URL; no path/query.
slashid_org_id stringSlashID organization ID. The API key is never shipped.
custom_claims_allowed_count integerNumber of configured allow-list JSONPath selectors for custom claims. Selector expressions are not shipped (may reveal internal claim taxonomy).
custom_claims_denied_count integerNumber of configured deny-list JSONPath selectors for custom claims. Selector expressions are not shipped (may reveal internal claim taxonomy).
plugin_type stringPossible values: [
token-translation-downgrade]slashid_base_url_host stringScheme + host of the SlashID base URL; no path/query.
slashid_org_id stringSlashID organization ID. The API key is never shipped.
mint_token_endpoint_host stringScheme + host of the operator-provided mint-token endpoint; no path/query.
retrieve_handles booleanWhether Gate looks up person handles from SlashID before calling the operator-provided mint endpoint.
plugin_type stringPossible values: [
token-reminting]token_source stringPossible values: [
header,cookie]token_header_or_cookie_name stringName of the header or cookie carrying the incoming token. Not the token value.
remint_token_endpoint_host stringScheme + host of the operator-provided remint-token endpoint; no path/query.
keep_old_token booleanWhether the incoming token is preserved in the proxied request after reminting.
plugin_type stringPossible values: [
mirroring]header_with_token stringName of the header carrying the incoming token. Not the token value.
map_token_endpoint_host stringScheme + host of the operator-provided map-token endpoint; no path/query.
persons_create_endpoint_host stringScheme + host of the SlashID persons create endpoint; no path/query.
slashid_org_id stringSlashID organization ID. The API key is never shipped.
plugin_type stringPossible values: [
authentication-proxy]slashid_base_url_host stringScheme + host of the SlashID base URL; no path/query.
slashid_org_id stringSlashID organization ID. The API key is never shipped.
online_tokens_validation booleanWhether the plugin performs online validation of tokens against SlashID.
online_tokens_validation_timeout_seconds integerTimeout for online token validation, in seconds.
required_groups_count integerNumber of groups a user must belong to be considered authorized. Group names are not shipped (may reveal RBAC structure).
max_groups_info_age_seconds integerMaximum age of cached group information, in seconds.
login_page_theme stringLogin page theme identifier (e.g.
auto,light,dark).login_page_logo_url_host stringScheme + host of the login page logo URL; no path/query.
login_page_heading_configured booleanTrue iff a login page heading is configured. The heading text is not shipped (customer-authored, potentially PII/branding-sensitive).
login_page_factors_count integerNumber of configured login page authentication factors. Factor details are not shipped (may reveal authentication strategy).
store_last_handle booleanWhether the login page stores the last used handle in the browser.
plugin_type stringPossible values: [
enforce-openapi-security]openapi_spec_url_host stringScheme + host of the OpenAPI spec URL; no path/query. Spec contents are not shipped.
openapi_spec_format stringPossible values: [
yaml,json]allow_requests_not_in_spec booleanWhether requests that do not match any operation in the spec are allowed through.
validate_url_host stringScheme + host of the validate URL (API-key / HTTP scheme flows); no path/query.
oauth2_token_format stringPossible values: [
jwt,opaque]oauth2_token_source stringPossible values: [
header,cookie]oauth2_token_header_or_cookie_name stringName of the header or cookie carrying the OAuth2 token. Not the token value.
include_required_scopes_in_oauth2_introspection_request booleanWhether required scopes are sent alongside the token in the introspection request (opaque tokens only).
oauth2_jwks_url_host stringScheme + host of the JWKS URL (JWT format only); no path/query.
oauth2_jwks_refresh_interval_seconds integerJWKS refresh interval, in seconds.
oauth2_jwt_allowed_algorithms string[]Allowed JWT signing algorithms (e.g. RS256, HS256).
oauth2_jwt_expected_issuer stringExpected JWT issuer identifier.
oauth2_jwt_expected_audience stringExpected JWT audience identifier.
oauth2_token_introspection_url_host stringScheme + host of the token introspection URL (opaque format only); no path/query.
oauth2_token_introspection_auth_mode stringPossible values: [
client_credentials,bearer,none]plugin_type stringPossible values: [
request-validator]validate_url_host stringScheme + host of the external request validator URL; no path/query.
plugin_type stringPossible values: [
e2e-testing]event_metadata object
Metadata attached by the backend after ingest. A curated subset of
common.EventMetadatafrom the proto plus one BQ-derived field (publish_time).sourceis omitted (always "Gate" for these events);event_type/event_name/event_versionare already carried by theEventIdentifiersslice of the embedded ingress schema.event_id uuidtimestamp stringRFC3339Nano — client-set, when gate emitted the event.
publish_time date-timePub/Sub ingest time, from the BigQuery table column. Not on the proto. Endpoints order by this field.
organization_id uuidroot_organization_id uuidanalytics_correlation_id uuidPer-gate-process identifier. Same value across every event emitted by one gate process (including its heartbeats); a new value on process restart.
{
"meta": {
"pagination": {
"limit": 0,
"offset": 0,
"total_count": 0
},
"cursor_pagination": {
"limit": 0,
"cursor": "string",
"total_count": 0
}
},
"errors": [
{
"httpcode": 0,
"message": "string"
}
],
"result": [
{
"event_name": "AuthenticationSucceeded_v1",
"service_name": "string",
"instance_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"version": {
"version": "string",
"variant": "string",
"build_commit": "string",
"build_date": "2005-12-24T18:29:30.033157Z",
"built_by": "string"
},
"comment": "string",
"config": {
"plugins": [
{
"plugin_index": 0,
"plugin_id": "string",
"plugin_type": "opa",
"config": {
"plugin_type": "opa",
"policy_decision_path": "string",
"monitoring_mode": true,
"capture_request_body": true,
"max_request_body_size": 0,
"bundle_source": "inline",
"bundle_url_host": "string",
"intercept_method": "request",
"policy_bundle": {}
}
}
],
"routes": [
{
"pattern": "string",
"target": "string",
"transparent": true,
"ext_auth_response": "allow",
"aws_lambda_auth_response": "allow",
"plugins": [
{
"plugin_id": "string",
"config": {
"plugin_type": "opa",
"policy_decision_path": "string",
"monitoring_mode": true,
"capture_request_body": true,
"max_request_body_size": 0,
"bundle_source": "inline",
"bundle_url_host": "string",
"intercept_method": "request",
"policy_bundle": {}
}
}
]
}
]
},
"event_metadata": {
"event_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"timestamp": "string",
"publish_time": "2005-12-24T18:29:30.033157Z",
"organization_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"root_organization_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"analytics_correlation_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
}
]
}
Bad Request
- application/json
- Schema
- Example (from schema)
Schema
meta object
pagination object
limit integeroffset integertotal_count int64cursor_pagination object
limit integercursor stringtotal_count int64errors object[]
httpcode integermessage string
{
"meta": {
"pagination": {
"limit": 0,
"offset": 0,
"total_count": 0
},
"cursor_pagination": {
"limit": 0,
"cursor": "string",
"total_count": 0
}
},
"errors": [
{
"httpcode": 0,
"message": "string"
}
]
}
Unauthorized
- application/json
- Schema
- Example (from schema)
Schema
meta object
pagination object
limit integeroffset integertotal_count int64cursor_pagination object
limit integercursor stringtotal_count int64errors object[]
httpcode integermessage string
{
"meta": {
"pagination": {
"limit": 0,
"offset": 0,
"total_count": 0
},
"cursor_pagination": {
"limit": 0,
"cursor": "string",
"total_count": 0
}
},
"errors": [
{
"httpcode": 0,
"message": "string"
}
]
}
Forbidden
- application/json
- Schema
- Example (from schema)
Schema
meta object
pagination object
limit integeroffset integertotal_count int64cursor_pagination object
limit integercursor stringtotal_count int64errors object[]
httpcode integermessage string
{
"meta": {
"pagination": {
"limit": 0,
"offset": 0,
"total_count": 0
},
"cursor_pagination": {
"limit": 0,
"cursor": "string",
"total_count": 0
}
},
"errors": [
{
"httpcode": 0,
"message": "string"
}
]
}