Repository navigation
Rust #325: service catalog reads like Server 2.11 - #681
Merged
Merged
Conversation
Waterline's service catalog view reads GET /api/service-catalog/
{endpoints,services,operations,calls}[/{id}], which native answered with
501. Native never holds catalog rows: takeover refuses a database with
services, endpoints, operations or service calls, and native has no path
that writes them. Every list is PHP's empty page and every identity its
catalog_object_not_found, after PHP's validation of the filters, which
adds Laravel's between rule.
The service-catalog fixture records 37 requests against the published
reference: every route, each filter refusal and namespace selection.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part of #325. Stacked on the #675 train, which carries the 2.11.1 reference.
What
The eight service-catalog reads that published Server 2.11 added:
GET /api/service-catalog/{endpoints|services|operations|calls}andGET /api/service-catalog/{…}/{id}. Waterline's service catalog view calls them; native answered501 rust_capability_not_implemented.Native never holds catalog rows:
upgrade_source_services_unsupported/upgrade_source_service_calls_unsupported);So PHP's answers for an empty catalog are exact for native:
Lists: 200 pages with empty
data, the requestedpageandper_page(defaults 1 and 50),total: 0,last_page: 1and the resolved namespace. Calls also report scope, buckets, outcome and the status and outcome vocabularies.Identities: 404
catalog_object_not_found.Filters, validated like PHP's
filters():pageon a detail;page/per_page(adds Laravel'sbetweenrule);bucketthat disagrees withstatus_bucket.Each answers 422
validation_failedwith Laravel's messages.Namespace selection, version header and auth: the existing control-plane admission handles them. The catalog joins the named-namespace allowlist for
GET.Evidence
service-catalogfixture encodes those 37 answers against the fixture's own namespace, with a contract and 18 unit tests (15 mutations).Local parity step against PHP 2.11.1: PHP, embedded (explicitly inapplicable) and native each pass every fixture, including
service-catalog, and the three-way comparison passes.