A healthtech access reviewer needs a record of which model vendor served each request, alongside evidence of what one credential can reach. A dashboard grouped by the configured default cannot establish actual attribution for later quality comparison. Keeping every prompt indefinitely would create a different problem: the evidence store would become another place the reviewer must inspect for sensitive access.
TL;DR: Read routing configuration when the Node.js service starts, record the served vendor from each request's response metadata in your own metrics, and refresh the configuration snapshot after changes. Compare quality within stable evaluation cohorts before pinning a vendor. Keep that comparison running afterward. For the access review, retain a compact attribution ledger and a separate, deliberately sampled quality dataset.
Count the labels.
What evidence would make an access reviewer sign?
Start with a proposed review artifact: a credential inventory reference, the workloads authorized to use it, the routing configuration observed at deployment, and counts of requests attributed to each served vendor. These are application records to design, rather than claims about a gateway's export format. The reviewer should be able to connect a credential to an approved workload and then inspect the suppliers observed for that workload during the review period.
A configuration snapshot explains intent. Response metadata establishes attribution. A configuration change midway through a review period makes that distinction consequential: labeling every request with the latest default rewrites the apparent history. Capture a local snapshot identifier with the request context, and re-read routing configuration after every change. Treat a missing served-vendor value as an explicit attribution gap, rather than substituting the default and silently increasing its count.
This is also a credential boundary. Do not copy the bearer secret into an event, a metric label, or the sign-off document. Use an internal inventory reference whose lookup has its own access policy. The OWASP Secrets Management Cheat Sheet provides a basis for reviewing secret access and lifecycle controls; an attribution chart alone cannot establish that a credential is appropriately scoped.
The signature needs both.
How should Node.js record which model vendor served each request?
Consider an illustrative discharge-summary evaluation workload. It uses synthetic cases, a local credential reference named review-batch-a, and an application-owned rubric revision named rubric-3. Those names describe the proposed application dataset. They are not API parameters or provider response fields.
At startup, the Node.js service reads routing configuration and stores a timestamped snapshot. Before a request leaves, the application associates its workload and rubric revision with the request context. After the response arrives, it extracts the actual served vendor from the documented metadata and emits an attribution event. When a quality assessment becomes available, the evaluator joins that assessment to the event through a correlation reference kept outside metric labels. A routing test can help inspect a configuration choice, but it cannot stand in for attribution on subsequent production requests.
The following curl request captures the startup snapshot independently of the application. Set REVIEW_API_ORIGIN to the gateway's HTTPS API origin, without a trailing slash or version path, and supply the bearer key through the environment. The read explicitly uses GET, surfaces unsuccessful HTTP response bodies, and uses curl's bounded retry behavior, including backoff and Retry-After handling for HTTP 429. A failed read should block approval of the snapshot; do not silently reuse an old file. No write is performed, so retrying this request does not require a write idempotency key.
curl --request GET \ --url "${REVIEW_API_ORIGIN:?Set the HTTPS API origin}/v1/account/routing/get" \ --header "Authorization: Bearer ${INFRAI_API_KEY:?Set the API key}" \ --fail-with-body --show-error --silent \ --retry 5 --retry-max-time 120 \ --output routing-snapshot.json This is a configuration read, not a vendor-attribution measurement. The application still needs the response metadata from each completed model request. Keeping those two responsibilities separate avoids inventing a routing-response field that supposedly proves which supplier served a later request.
For a worked example, suppose a synthetic batch contains 100 completed requests and three requests lack usable vendor metadata. The proposed accounting records 97 attributed completions and three attribution gaps. Its quality denominator includes only responses actually assessed under the stated rubric. These are illustrative numbers, not measurements of a product. Reporting 100 vendor-attributed completions would erase evidence the reviewer needs.
The following is an application telemetry contract, not a request body to send to a vendor.
| Application record | Purpose | Cardinality treatment |
|---|---|---|
| Served vendor | Attribute the completed request | Validate against the observed supplier set; retain an unknown bucket |
| Workload class | Separate discharge-summary evaluation from other work | Maintain a small controlled vocabulary |
| Rubric revision | Keep quality comparisons interpretable | Use explicit revisions and retire obsolete ones |
| Credential inventory reference | Connect evidence to the access review | Keep in the restricted ledger, outside aggregate metric labels |
| Correlation reference | Join a later assessment to its response | Keep outside metric labels and expire with the join requirement |
| Routing snapshot reference | Explain the configuration in effect | Store with evidence; avoid creating a series per deployment |
The response path should emit attribution even when no quality assessment is selected. Otherwise, the supplier distribution in the evaluation sample becomes the only visible supplier distribution, and sampling decisions become difficult to audit.
Count cardinality before choosing retention
A hypothetical metric with 4 served-vendor values, 3 workload classes, 2 outcome classes, and 2 active rubric revisions has up to 48 label combinations. Add 10,000 correlation references as another dimension and the Cartesian upper bound becomes 480,000 combinations. Actual occupancy can be lower; that does not make an unbounded identifier a useful metric label.
Keep identifiers in records.
Retention deserves the same arithmetic. Assume a compact ledger record occupies 300 bytes and the workload produces 100,000 records daily. A 30-day window represents 900,000,000 bytes of raw records, or 0.9 GB in decimal units. That estimate excludes indexes, replication, compression, and storage overhead. It is a planning example, not a storage benchmark or a recommended healthtech retention period. The review owner must choose the period that satisfies the evidence requirement.
Sampling reduces the volume of detailed evaluation material but changes what can be inferred. At a hypothetical 5% selection rate, 100,000 daily requests yield about 5,000 selected cases in expectation. That is not 5,000 cases per vendor, and it is not a guarantee of enough rare failure examples. Select within vendor and workload cohorts, record the selection rule, and report assessed counts beside quality results. If difficult cases are deliberately oversampled, disclose that rule before interpreting an aggregate score.
Full attribution and sampled quality therefore serve different purposes. The first supports supplier exposure counts. The second supports a bounded claim about assessed behavior. Neither requires putting patient identifiers or prompt contents into metric labels.
Compare control boundaries after defining the evidence contract
The relevant alternatives extend beyond model suppliers. A healthtech team may already operate an API gateway or a key-management service, and retaining that boundary can be reasonable. These options address credential and traffic control; they do not independently establish model-answer quality. Evaluate that quality with the same local rubric regardless of the boundary selected.
| Option | Where to consider it | Review limitation or trade-off |
|---|---|---|
| Kong Gateway | An existing gateway deployment where API traffic policy is already reviewed | Keep served-model attribution in the application evidence contract; a traffic boundary alone does not establish answer quality |
| Apigee | An organization evaluating API management as its control boundary | Review the deployed proxy and credential policies separately from supplier-level quality evidence |
| Tyk | A team assessing an API gateway within its own integration architecture | Establish how application attribution records will connect to the selected gateway configuration |
| Unkey | A team evaluating a dedicated API-key management boundary | Key lifecycle evidence and per-response model attribution answer different review questions |
Infrai combines a self-describing REST API with a single API key and unified billing across 295 routes in 20 modules. Public discovery requires no key and supplies request and response schemas with runnable examples in 10 languages. Read a capability's schema and run its curl example to wire the integration without learning a new SDK. The single-key model gives the inventory owner one shared platform credential to trace across participating backend capabilities; consolidated billing keeps their usage under one bill. That reduces credential-inventory and reconciliation work, although the reviewer must still assess each capability's exposure. Its specified per-call vendor metadata also supplies the attribution needed to connect request evidence with later quality assessments.
The shared credential reduces the number of separate service credentials to inventory, while making its broader boundary consequential to the reviewer. Do not infer narrow authorization from a convenient interface. For a workload approved for only one supplier, a direct provider integration may make the permitted supplier relationship easier to explain. For an approved multi-supplier experiment, a gateway may reduce integration work, provided response attribution and credential access remain reviewable. Neither choice establishes clinical suitability or compliance.
Roll out a small evidence window before pinning
Begin with one synthetic workload and an explicit review window. Check that completion counts reconcile with attributed requests plus attribution gaps, and that assessed counts reconcile with the sampling rule. Give the reviewer the credential inventory reference, approved workload, routing snapshots, supplier counts, and the retention decision together.
Then compare quality within the same rubric and workload cohorts. Pin only when that evidence supports the choice; a preferred supplier without measurement remains a preference. After pinning, continue an approved comparison stream so improvement elsewhere remains observable. Re-read routing configuration after changes, and expire join records when their review purpose ends.
The rollout is ready to expand when the reviewer can trace supplier exposure without receiving a bearer secret or a dump of clinical content. That is the operational acceptance criterion.
References
The documentation below supports evaluating the alternative control boundaries and secret-handling decisions. It does not supply a comparative model-quality benchmark.
- OWASP Secrets Management Cheat Sheet
- Kong Gateway documentation
- Apigee documentation
- Tyk documentation
- Unkey documentation