One client story.
Contracts and edge cases
Platform spec article
Contracts and edge cases
Spec standingStandard
-
Hub authority
Context
Decision
Hub owns HTTP and auth.
Consequences
Extension defers.
Verification anchors
beskid_pckg; pckgClient.
-
Registry versions
Context
Manual semver drift.
Decision
Registry-assigned publish versions in routine flows.
Consequences
UI shows server version.
Verification anchors
publish API tests.
- Contracts and edge cases Registry client guarantees and failure modes.
- Design model Conceptual model for the Beskid pckg registry client (`beskid_pckg`).
- Examples Example `beskid pckg` invocations and configuration.
- FAQ and troubleshooting Common pckg client and registry issues.
- Flow and algorithm Pack, upload, and query flows for the pckg registry client.
- Verification and traceability Tests and traceability for the pckg client contract.
0 revisions (git unavailable at build; counts may be empty)
No commits recorded for this path.
| Section id | Required | Found |
|---|---|---|
what-this-feature-specifies | yes | yes |
implementation-anchors | yes | yes |
Full tree: run pnpm verify:platform-spec-layout (writes src/generated/platform-spec-layout-report.json).
Contracts
Section titled “Contracts”- HTTPS in production — Operators should configure
BESKID_PCKG_URLwith TLS endpoints; clients honor redirects per reqwest defaults. - Auth mutual exclusion — Bearer and API key flags must not be combined on one invocation.
- Structured
api.json— Library packs should include compiler-emitted.beskid/docs/api.jsonas the docs UI contract (see api.json contract). - Readme artifact name — Packed readmes must appear as root
README.mdin the zip for dashboard listing. - Template discriminator — Template packs must set
packageKind: templateand ship.beskid/template.json.
Edge cases
Section titled “Edge cases”| Case | Behavior |
|---|---|
Missing Project.proj at pack root | Defaults to library profile without template metadata |
| Invalid manifest during pack | PckgError::Api with BAD_REQUEST semantics |
| Missing auth on publish | MissingAuthToken before HTTP |
| Large trees | Walkdir-based collection; operators exclude build outputs via manifest/layout conventions |
iconUrl on publish | Server validates HTTP(S) URLs and length caps (PackageManifestMetadata) |
Server rejection mirrors
Section titled “Server rejection mirrors”Client-side pack should prevalidate paths the server will reject (docs layout, workspace member consistency) to avoid wasted uploads; integration tests live in pckg/src/Server.Tests/.