API d'administration : contrat OpenAPI
Les opérations du port d'administration de la passerelle Flexway v1.7.1, lues dans le contrat OpenAPI que la version publie : paramètres, corps, réponses, erreurs et schémas. Page statique, sans bouton d'essai.
Surface d'administration, non exposée au public. Ce port ne doit jamais être joignable depuis l'extérieur : ouvrez-le à l'orchestrateur, au collecteur de métriques et à la console seulement.
The operational surface of a Flexway gateway, served on its admin port (9090 by default, moved by FLEXWAY_ADMIN_ADDR): the liveness and readiness probes, the configuration in force with its secrets masked, a request simulated without its upstream, the journals of events and errors of the replica that answers, and the Prometheus metrics.
This port is never routable from outside: /config lists the issuers and the upstreams. Expose it to the orchestrator, the metrics scraper and the console only. Every error of this surface is an RFC 9457 problem document (application/problem+json).
- Contrat
- OpenAPI 3.1.0, version 0.9.0 · Télécharger admin.openapi.yaml
- Serveur
http://localhost:9090(Admin listener)- Sécurité
- Aucun schéma de sécurité déclaré par le contrat
- Corps
application/jsonapplication/problem+jsontext/plain- Guide
- API d'administration
9 opérations
Opérations
- GET
/healthzThe process is alive - never about its configuration200 - GET
/readyzA configuration is loaded and served; red first at shutdown200503 - GET
/configThe configuration in force, secrets masked, and what it composes to200503 - POST
/simulateWhat the gateway would do with a described request, without calling the upstream200400 - POST
/simulate/mqttWhat the MQTT device listener would do with a described packet, without the broker200400404 - GET
/eventsWhat happened on this replica - reloads, circuit breaker transitions, shedding200 - GET
/errorsThe recent errors of this replica - upstream failures, refusals, internal errors200 - GET
/sparkplug/nodesThe Sparkplug B edge nodes and host applications that cross this replica200 - GET
/metricsPrometheus exposition of the gateway's metrics200
/healthz
livenessThe process is alive - never about its configuration
Paramètres
Aucun.
Réponses
- 200
- Alive.
Exemple, généré depuis le contrat
curl -s http://localhost:9090/healthz/readyz
readinessA configuration is loaded and served; red first at shutdown
Paramètres
Aucun.
Réponses
- 200
- Ready.
- 503
- Not ready, with the reason - a probe's answer, not an error document.
Exemple, généré depuis le contrat
curl -s http://localhost:9090/readyz/config
getEffectiveConfigThe configuration in force, secrets masked, and what it composes to
Every key of flexway.yaml as loaded, secret-looking values redacted, plus what the gateway derives from it: the catalogue of served operations and each operation's chain with its provenance, the configuration version and the last reload's outcome.
Paramètres
Aucun.
Réponses
- 200
- The effective configuration.
- 503
- No configuration loaded yet (not_ready).
Exemple, généré depuis le contrat
curl -s http://localhost:9090/config/simulate
simulateRequestWhat the gateway would do with a described request, without calling the upstream
The described request goes through the same decision as traffic - routing, origin, authorization against the described identity (no token is verified), whitelist, validation, policy chain - and stops before the upstream: no token exchanged, no bucket nor quota spent, nothing counted.
Paramètres
Aucun.
Corps de la requête obligatoire
application/jsonSimulationRequest
Réponses
- 200
- The verdict, and the outbound request when served.
- 400
- The description is incomplete (malformed_request).
Exemple, généré depuis le contrat
curl -s http://localhost:9090/simulate \
-H 'Content-Type: application/json' \
-d '{"method":"GET","host":"api.example.com","path":"/orders/42?status=open"}'/simulate/mqtt
simulateMQTTPacketWhat the MQTT device listener would do with a described packet, without the broker
A described PUBLISH, SUBSCRIBE or will (a CONNECT's) of a described device goes through the listener's decision - the operations its identity satisfies, its channels with the bound values written, wildcards contained, $share/ groups, QoS, Response Topic - and stops before the broker: nothing dialled, no rate nor quota spent, nothing counted. Absent without listeners.mqtt (404).
Paramètres
Aucun.
Corps de la requête obligatoire
application/jsonMQTTSimulationRequest
Réponses
- 200
- The verdict, the operation, and the topic or filter as written toward the broker when served.
- 400
- The description is incomplete (malformed_request).
- 404
- listeners.mqtt is not set (not_found).
Exemple, généré depuis le contrat
curl -s -X POST http://localhost:9090/simulate/mqttLe corps n'est pas généré : un champ obligatoire n'a pas d'exemple dans le contrat. Voir le schéma.
/events
listEventsWhat happened on this replica - reloads, circuit breaker transitions, shedding
A journal in memory: the last 128 events of each kind, newest first, lost at a restart - per replica, the one that answers. Never a tenant nor anything a caller sent: upstream names come from the configuration, versions and causes from the reloader (the text of /config's last_reload).
Paramètres
Aucun.
Réponses
- 200
- The journal.
Exemple, généré depuis le contrat
curl -s http://localhost:9090/events/errors
listErrorsThe recent errors of this replica - upstream failures, refusals, internal errors
A journal in memory: three rings of 256 (upstream, refused, internal), newest first, lost at a restart - per replica, the one that answers. Written on the error path only, without an allocation, at most 20 per second and per kind: past it, an error is counted in its kind's dropped and not detailed. Every field is a name from the configuration, the verified tenant, or a member of a closed set; never a subject, an address, the path received, the request, its headers or body, nor an upstream's or the network's text. A 4xx an upstream answered is its business, not an error of the gateway.
Paramètres
Aucun.
Réponses
- 200
- The journal.
Exemple, généré depuis le contrat
curl -s http://localhost:9090/errors/sparkplug/nodes
listSparkplugNodesThe Sparkplug B edge nodes and host applications that cross this replica
The table each replica keeps: an edge node is online from its NBIRTH on this replica, offline from its NDEATH or the end of its connection with its will, moved when this replica handed its connection over to another (a tombstone, never offline), unknown when only its admitted commands crossed here. Bounded by observability.sparkplug (max_nodes, max_nodes_per_tenant, offline_retention, max_devices_per_node); lost at a restart. The listing carries each node's device counts, never its devices: an answer is at most max_nodes entries of bounded fields (an id is 255 bytes at most). With node (and tenant), the one node with its devices. The console reads it on every replica and keeps, per node, the entry with the latest birth. Names are the ones the topics carry - the tenant's group, the node's and its devices' ids; never a metric value, a payload, an address or a certificate. Absent (404) when the gateway has no MQTT listener.
Paramètres
tenantrequêtestring- Only this tenant's nodes and host applications.
noderequêtestring- Only this edge node, with its devices - given with tenant.
Réponses
- 200
- The table.
Exemple, généré depuis le contrat
curl -s http://localhost:9090/sparkplug/nodes/metrics
getMetricsPrometheus exposition of the gateway's metrics
Names and dimensions are a frozen surface.
Paramètres
Aucun.
Réponses
- 200
- Prometheus text exposition.
Exemple, généré depuis le contrat
curl -s http://localhost:9090/metricsErreurs
Toute erreur de cette API est un document de problème, application/problem+json. Les codes ci-dessous sont ceux que les réponses du contrat citent.
Problem
objectRFC 9457 problem details - every error of the admin surface (the inference surface answers in OpenAI's envelope, ErrorResponse). code is what a client switches on.
typeobligatoirestringtitleobligatoirestringstatusobligatoireintegerdetailstringinstancestringcodeobligatoirestringrequest_idstringtrace_idstringerrorslist<FieldError>- invalid_request only - each field that broke the contract, and the rule it broke.
grpcGRPCStatus
Cité par : GET /configPOST /simulatePOST /simulate/mqtt
Codes cités par les réponses
- 503
not_readyGET /config - 400
malformed_requestPOST /simulate · POST /simulate/mqtt - 404
not_foundPOST /simulate/mqtt
38 schémas
Schémas
Chaque schéma une fois, avec son ancre : les opérations y renvoient et un schéma qui en cite un autre le lie.
SimulationRequest
objectmethodobligatoirestringhostobligatoirestringpathobligatoirestring- With its query, as a client would send it.
headersmap<string>identitySimulatedIdentity
Cité par : POST /simulate
SimulatedIdentity
objectWho the caller is supposed to be - what a valid token would have proved. Nothing is verified.
issuerobligatoirestringsubjectobligatoirestringtenantstringscopeslist<string>roleslist<string>
Cité par : SimulationRequest
MQTTSimulationRequest
objectpacketobligatoirestring- will: a CONNECT's will, judged as a PUBLISH.
topicobligatoirestring- A topic name (publish, will) or a filter (subscribe), $share/<group>/ included.
qosintegerresponse_topicstring- An MQTT 5 Response Topic
identityobligatoireMQTTSimulatedIdentity
Cité par : POST /simulate/mqtt
MQTTSimulatedIdentity
objectWho the device is supposed to be - nothing is verified. A key or a certificate is found by its id in the configuration in force.
kindobligatoirestringidstring- api_key: the key's id; certificate: the auth.mtls client's id.
issuerstringsubjectstringtenantstring- token: its tenant claim; a key's or a certificate's is the configuration's.
scopeslist<string>claimsmap<string>- token: the claims a claim:<name> binding reads.
certificateobject- certificate: the fields a cert:<field> binding reads - cn, serial, fingerprint, ou, o, san.dns, san.uri, san.ip, san.email (lists for the multi-valued ones).
Cité par : MQTTSimulationRequest
MQTTSimulationResult
objectverdictobligatoirestringreason_codeinteger- The MQTT 5 reason code a refusal answers (0x87 = 135...).
causestring- The refusal's cause - the label of flexway.mqtt.packets.
operationstringupstreamstringwrittenstring- The topic or filter as written toward the broker - a $share/ group in the tenant's name.
qosinteger- The QoS the broker sees - a subscription's granted at the operation's qos_max at most.
client_idstring- The client id the broker sees for this identity.
Cité par : POST /simulate/mqtt
SimulationResult
objectverdictobligatoirestringstatusobligatoireintegercodestring- The refusal's problem code.
operationstringupstreamstringchainlist<string>appliedlist<string>outboundOutbound
Cité par : POST /simulate
Outbound
objectThe request the upstream would receive, before the token exchange and the relay; credentials masked.
pathobligatoirestringquerystringheadersobligatoiremap<list<string>>
Cité par : SimulationResult
Liveness
objectstatusobligatoirestringuptime_secobligatoireinteger
Cité par : GET /healthz
Readiness
objectstatusobligatoirestringoperationsinteger- Operations served, when ready.
reasonstring- Why not, when not ready.
Cité par : GET /readyz
GRPCStatus
objectupstream_status only - the google.rpc.Status a gRPC upstream answered to a call translated from REST (1.1.0): the upstream's own answer, as it gave it. The HTTP status is the one google.rpc.Code maps the code to.
codeobligatoireintegerstatusobligatoirestring- The code's name - what a client switches on.
messagestringdetailslist<object>- The status details in the proto3 JSON mapping; a type the gateway does not know keeps only its "@type".
Cité par : Problem
FieldError
objectfieldobligatoirestringruleobligatoirestring- For a human.
codeobligatoirestring- The JSON Schema keyword broken, or the operator's name for it (errors.field_codes).
Cité par : Problem
KafkaOperation
objectAn AsyncAPI operation served to Kafka clients (x-flexway-kafka-proxy).
operationobligatoirestringidentitiesobligatoirelist<object>- The alternatives of its security - token (with its scopes), apikey, certificate.
transactionsboolean- A send operation that opens the transactional producer.
admin_scopestring- The scope a token carries to administer the topic.
decrypt_scopestring- A receive operation's scope a token carries to read the topic's encrypted fields in clear.
EffectiveConfig
objectversionobligatoireinteger- The configuration schema's version - not the gateway's, see build.
buildobligatoireBuildInfoconfig_versionobligatoirestring- Short digest of the bytes served.
config_digeststring- Short semantic digest of the configuration served: the decoded flexway.yaml in a canonical form and each contract under the path flexway.yaml writes, the API key store excluded. The same whatever the mount path or the chart's rendering - what
flexway validateprints, and what a pipeline or the console expects to see served after a merge. last_reloadobjectcatalogobligatoirelist<CatalogEntry>fragmentslist<PolicyFragment>- The policy fragments imported, in the order policies.fragments writes them; empty without one. Their definitions are also under policies.definitions, as <import>/<name>.
agentsobject- The agents section as loaded, when one is configured: mcp (path, resources, servers and clients) and delegation (max_depth, max_age, introspection).
kafkaobject- The Kafka listener's virtual clusters (1.6.0), read from the AsyncAPI contract in force; absent without listeners.kafka. Its bounds and quotas are under listeners.kafka, its signals' settings under observability.kafka. Never a key, a certificate, a tenant's name.
devicesobject- The MQTT device listener's operations (1.7.0), read from the AsyncAPI contract in force; absent without listeners.mqtt. Its bounds are under listeners.mqtt, its signals' settings under observability.mqtt. Never a key, a certificate, a tenant's name.
kmsobject- The KMS of field-level encryption on the Kafka listener (1.6.0), as loaded: its kind, host and key name - per_tenant_key when the name holds {tenant} -, the previous keys records may still name (previous_keys, read only), timeout, rotation, cache and tenant_calls bounds, and its kind's section with references (${VAR}, file:/path) and mounted file paths - never a secret, never a key. The epochs in use and the keys cached are runtime state, in the metrics flexway.kafka.dek.epoch and flexway.kafka.dek.cached.
listenersobject- The listeners beside HTTP, as loaded: kafka - its addresses, bounds (max_connections, max_connections_per_tenant, max_tenant_in_flight_bytes, on_tenant_budget_exceeded...) and, when declared, quotas (client and tenant producer_byte_rate, consumer_byte_rate, request_rate; window, max_throttle, quota) - what the console shows as the bounds in force; mqtt - its address, TLS files, websocket, advertised_address, every bound (max_connections, max_connections_per_ip, max_connection_rate_per_tenant, topic_alias_maximum...), device and tenant rates, the tenant's quota policy, failover (mode, reason, server_reference, redirect_above, handover_timeout, drain_spread).
mcp_federationmap<FederationState>- Live, not the configuration: each federated MCP server's last discovery, by server name - read at each GET /config, since discovery moves on its own.
a2aobject- The governed A2A agents (1.2.0): what each serves and how - from the configuration in force, read at each GET /config. Absent when no agent is declared. Never a key, never a token.
chainsobligatoiremap<map<ChainDetail>>- By host ("*" for every host without contracts of its own), then by operationId.
effective_chainsmap<list<string>>- The chain's policy names alone, by operationId, on hosts not configured otherwise.
policiesobject- The policies section as loaded - definitions and chains, secret-looking values masked.
aiobject- The ai section as loaded, when one is configured: budget (monthly_tokens, daily_tokens, monthly_eur, soft), overrides (match, backend, caps) and backends - the quotas the console compares a tenant's consumption with.
Cité par : GET /config
EventLog
objectreplicaobligatoirestring- The answering process's host name - the pod's name.
capacityobligatoireinteger- Events kept per kind.
eventsobligatoirelist<Event>
Cité par : GET /events
Event
objectOne event. reload - result, version, and cause when rejected; breaker - upstream, from and to; shedding - state, and cause (latency of the shedder, in_flight_limit of the adaptive in-flight limit); delegation - a refused chain of agents: reason, client, tenant, actors, depth and age against the bounds in force, operation or tool, the token's declared scopes. Never a subject, never a token; a tenant on the kind delegation only.
atobligatoirestringkindobligatoirestringreasonstring- Delegation - why the chain was refused.
clientstring- Delegation - the agent's client: a declared client_id, _undeclared, none or _other.
tenantstring- Delegation - the tenant, bounded as on the metrics.
actorslist<string>- Delegation - the agents of act, the current one first; at most max_depth + 1, 256 characters each.
depthinteger- Delegation - the chain's measured depth.
age_secondsinteger- Delegation - the chain's measured age; -1 when the token carries no time it started.
max_depthinteger- Delegation - the depth bound in force for the operation.
max_age_secondsinteger- Delegation - the age bound in force for the operation.
operationstring- Delegation - the operation (REST or a tool's replay); absent at the MCP connection.
toolstring- Delegation - the tool; absent for a REST request and at the MCP connection.
scopeslist<string>- Delegation - the presented token's scopes that a contract or a federated server declares.
resultstringversionstringcausestringupstreamstringfromstringtostringstatestring
Cité par : EventLog
SparkplugNodes
objectreplicaobligatoirestring- The answering process's host name - the pod's name.
capacityobligatoireinteger- observability.sparkplug.max_nodes.
offline_retention_secondsobligatoireinteger- observability.sparkplug.offline_retention
droppedobligatoireinteger- Nodes and host applications not kept since the start - the table was full of online nodes.
nodesobligatoirelist<SparkplugNode>hostsobligatoirelist<SparkplugHost>
Cité par : GET /sparkplug/nodes
SparkplugNode
objecttenantobligatoirestring- The node's group - the tenant it is bound to.
edge_nodeobligatoirestringstateobligatoirestringsinceobligatoirestring- When the node took its state on this replica.
bd_seqinteger- The bdSeq of its last NBIRTH here; absent when none was read.
will_bd_seqinteger- The bdSeq of the will (NDEATH) its connection registered; absent when none was read.
seq_gapsobligatoireinteger- Messages whose seq was not the next since its birth here.
bd_seq_gapsobligatoireinteger- Births whose bdSeq was not their will's.
protocol_versionobligatoirestring- 5 or 3.1.1; empty for an unknown node.
authobligatoirestring- The mode of identity of its connection - certificate, token, api_key; empty for an unknown node.
devices_onlineobligatoireinteger- Its devices online (DBIRTH without a later DDEATH) since its birth.
devices_totalobligatoireinteger- Its devices kept since its birth.
devicesobligatoirelist<SparkplugDevice>- Its devices (DBIRTH, DDEATH) since its birth, sorted by id - listed only when the node is asked for (node); empty otherwise.
devices_truncatedobligatoireboolean- Past observability.sparkplug.max_devices_per_node
commandsobligatoireSparkplugCommands
Cité par : SparkplugNodes
SparkplugDevice
objectdeviceobligatoirestringstateobligatoirestring
Cité par : SparkplugNode
SparkplugCommands
objectThe commands (NCMD, DCMD) to the node that crossed this replica, admitted and refused.
admittedobligatoireintegerrefusedobligatoireinteger
Cité par : SparkplugNode
SparkplugHost
objectA host application, read from its STATE (spBv1.0/STATE/{host_id}, the host id bound to the tenant).
tenantobligatoirestringhost_idobligatoirestringstateobligatoirestringsinceobligatoirestring
Cité par : SparkplugNodes
ErrorLog
objectreplicaobligatoirestring- The answering process's host name - the pod's name.
capacityobligatoireinteger- Errors kept per kind.
write_limitobligatoireinteger- Errors detailed per second and per kind; past it they are counted in dropped.
kindsobligatoirelist<ErrorKindCount>- Each kind's count of the errors it could not detail since the start.
errorsobligatoirelist<GatewayError>
Cité par : GET /errors
ErrorKindCount
objectkindobligatoireErrorKinddroppedobligatoireinteger- Errors past the write limit since the start.
last_dropped_atstring- The last of them; absent when none was dropped.
Cité par : ErrorLog
ErrorKind
stringupstream - an answer written for an upstream that failed (502, 503, 504), or an upstream's 5xx relayed; refused - a refusal the gateway wrote (a 4xx, or the 503 of its shedding); internal - the gateway failing.
Cité par : ErrorKindCountGatewayError
GatewayError
objectOne error. Its fields are a closed list: no subject, address, received path, request, header, body, nor an upstream's or the network's text.
atobligatoirestringkindobligatoireErrorKindoperationobligatoirestring- The operationId; _unmatched when no route matched.
upstreamstring- The upstream's name in the configuration; absent when the request never reached one.
tenantstring- The verified identity's tenant; absent for an anonymous caller. A tenant longer than 128 characters is never truncated: it is written sha256:<hex digest of the whole tenant>.
statusobligatoireinteger- The HTTP status answered - for a refusal answered in gRPC's status, the one its code maps to.
codeobligatoirestring- The problem code the gateway wrote; upstream_status for an upstream's 5xx relayed as is - never a code or a text of the upstream.
stageobligatoirestring- Where the error was written, derived from its code.
causestring- Upstream errors only - why the upstream failed, a closed set; never the network's text.
duration_msobligatoirenumber- Time from the request's arrival to its answer.
trace_idstring- The request's trace when it was sampled.
Cité par : ErrorLog
BuildInfo
objectThe binary serving, written at build time: the release tag for a release ("v1.0.0"), "dev" for any other build, and the commit it was built from.
versionobligatoirestringcommitobligatoirestring- Short commit; empty when the build did not say.
Cité par : EffectiveConfig
CatalogEntry
objectoperation_idobligatoirestringmethodobligatoirestringpathobligatoirestring- The path template, never a concrete URL.
hostsobligatoirelist<string>- "*" stands for every host without contracts of its own.
upstreamobligatoirestringsummarystringtagslist<string>deprecatedobligatoirebooleansecurityobligatoirelist<list<string>>- The alternatives, each the schemes it combines; an empty one is anonymous access.
rate_classstringtoolstring- The tool name when offered to agents (x-flexway-tool).
tool_unattendedboolean- Present only with tool: false when the tool is kept for agents a person supervises (x-flexway-tool with unattended false), true otherwise.
builtinobligatoireboolean- An operation the gateway declares itself (ai.*).
protocolstring- grpc for a method of a Protobuf service (1.1.0): path is its gRPC path. Absent: HTTP.
restlist<CatalogRoute>- The REST routes of a gRPC method (google.api.http), the same operation translated.
cachelist<CatalogCache>- The operation's response cache (1.2.0), one entry per distinct rule - from its x-flexway-cache, or a cache policy attached around it. Absent: nothing of it is cached.
timeout_msobligatoireinteger- The operation's total budget in milliseconds: its x-flexway-timeout, otherwise its upstream's timeout. An external-call of the request phase consumes it; the upstream gets what is left.
ownerCatalogOwnersunsetstring- The date a deprecated operation is withdrawn (x-flexway-sunset), YYYY-MM-DD.
streamstring- How the operation answers when it is not one response - a text/event-stream, a protocol switch (101), a streaming gRPC method. The vocabulary of flexway.streams.open. Absent: one response.
security_detailobligatoirelist<CatalogAlternative>- The alternatives of security, in the same order, with each scheme's kind and what it requires.
effective_rate_classobligatoirestring- The rate-limit class the operation counts against: rate_class when declared, read for a gRPC method without side effects, otherwise by method.
contractstring- The contract file that declares it, as flexway.yaml writes the path; absent for the gateway's own operations.
prioritystring- x-flexway-priority when declared.
validationstring- x-flexway-validation when declared; absent - the host's.
delegationobject- x-flexway-delegation when declared; a bound absent is the configuration's.
added_scopeslist<string>- The scopes x-flexway-scopes adds to every token alternative (already in security_detail).
paramsobligatoirelist<CatalogParam>- The parameters in short - never a schema nor an example.
bodyobject- The request body in short; absent - none declared.
responsesobligatoirelist<CatalogResponse>- The declared responses in short - status as written ("200", "2XX", "default") and media types.
Cité par : EffectiveConfig
CatalogOwner
objectThe team that answers for an operation (x-flexway-owner) - a team's channel, never a person.
teamobligatoirestringcontactstring
Cité par : CatalogEntry
CatalogAlternative
objectanonymousobligatoireboolean- The empty alternative {}: no identity needed.
schemesobligatoirelist<object>scopeslist<string>roleslist<string>
Cité par : CatalogEntry
CatalogParam
objectnameobligatoirestringinobligatoirestringrequiredobligatoirebooleantypestring- The schema's type; "a|b" for a list of types.
formatstring
Cité par : CatalogEntry
CatalogResponse
objectstatusobligatoirestringmediaobligatoirelist<string>
Cité par : CatalogEntry
A2AAgent
objectagentobligatoirestring- The agent's name in operation ids (a2a.<agent>.<Method>) and metrics.
cardobligatoirestring- The declared card, as flexway.yaml writes its path.
upstreamobligatoirestringbindingsobligatoiremap<string>- The bindings served (JSONRPC, HTTP+JSON), each with the gateway's address.
methodsobligatoiremap<string>- The methods served, each with its rate class - free debits nothing.
verifyobligatoirestring- How the upstream's own card is verified - none until card verification is built.
streamingobligatoirebooleanmax_streamsinteger- The streams one caller may hold open to the agent, per replica.
max_task_durationstring- The longest a stream of the agent runs, as a Go duration.
card_pathobligatoirestring- Where the gateway publishes the agent's card.
FederationState
objectstatusobligatoireobjecttoolsobligatoirelist<string>- The tools discovered, under their names on the surface.
descriptionsmap<string>- What each tool says of itself, by name, 512 characters at most - a third party's text.
not_servedlist<string>- Tools announced and not served, their name taken: "<name> (taken by <who>)".
Cité par : EffectiveConfig
CatalogCache
objectttl_secondsobligatoireinteger- The longest a response is kept; the upstream's Cache-Control may shorten it.
scopeobligatoirestring- public: anonymous callers; subject: keyed by tenant and subject.
policystring- The cache policy it comes from; absent for the contract's x-flexway-cache.
hostsobligatoirelist<string>- The hosts it applies on; "*" alone: every host.
Cité par : CatalogEntry
CatalogRoute
objectmethodobligatoirestringpathobligatoirestring
Cité par : CatalogEntry
ChainDetail
objectstepsobligatoirelist<object>removedlist<Attachment & object>replacedlist<object>
Cité par : EffectiveConfig
Attachment
objectlevelobligatoirestringsourcestring- The host, the route motif, x-flexway-policies, or policies.fragments for the enforced head of the chain.
Cité par : ChainDetail
FragmentOrigin
objectThe fragment an imported policy comes from; absent for a local definition.
importobligatoirestring- The import name flexway.yaml gives it - the prefix of its definitions.
fragmentobligatoirestring- The fragment's own name.
versionobligatoirestring- The fragment's semantic version - informative; the digest says what runs.
enforcedobligatoireboolean- At the head of every chain: never removed, never replaced.
PolicyFragment
objectOne imported policy fragment.
importobligatoirestringfragmentobligatoirestringversionobligatoirestringdigestobligatoirestring- sha256:<hex>, the digest pinned - equal to the file's.
pathobligatoirestring- The file
signatureobligatoirestring- How the file was proven beyond its digest: none in this version.
requires_uncheckedobligatoireboolean- true when the fragment requires a gateway version and a development build (dev) loaded it without comparing - said here and in the log, never refused.
requiresobligatoireobjectdefinitionsobligatoirelist<string>- The imported names, <import>/<name>.
enforcedobligatoirelist<string>- The enforced definitions
unusedobligatoirelist<string>- The imported definitions no chain names - never an error.
Cité par : EffectiveConfig