registrystack / registrystack/registry-stack
Add field classification bindings to Manifest and Relay catalog metadata
- Dominant language
- Rust
- Stars
- 2
- Forks
- 0
- Avg merge
- 2h 57m
- Merged PRs (30d)
- 128
Description
Tracked by #590. Depends on #591.
## Outcome
Registry Manifest can carry reviewed, typed field classifications independently from semantic concepts, and Registry Relay can compile and publish them as descriptive catalog metadata without changing access-control behavior.
## Requirements
- Add an optional, additive classification-binding type to Manifest fields.
- Keep semantic `concepts` separate from privacy and handling classifications.
- Use a closed set of policy-relevant facets with vocabulary terms expressed as absolute or prefixed IRIs.
- Record enough provenance to distinguish publisher-declared, profile-derived, and tool-proposed classifications in compiled and rendered output.
- If an explicit primary concept field is added, preserve the #589 compatibility rule for manifests that omit it.
- Expand and validate classification IRIs through pinned vocabulary/profile inputs from #591.
- Reject duplicate, contradictory, unknown policy-driving, and malformed bindings with field-addressed diagnostics.
- Carry classifications through `CompiledField`, Relay's metadata adapter, catalog JSON, and appropriate JSON-LD/SHACL output.
- Keep dataset `sensitivity`, field `sensitive`, released-claim sensitivity, and explicit `redaction_fields` behavior unchanged.
- State clearly that this issue adds metadata only and does not activate PDP enforcement.
## Acceptance criteria
- [ ] A field can carry a semantic concept and one or more typed classifications without conflating their meanings.
- [ ] PublicSchema and SEMIC terms work as semantic concepts while a separate governed vocabulary supplies privacy classifications.
- [ ] Compiled and published catalog output includes normalized classification IRIs, facets, and provenance.
- [ ] Unknown or contradictory policy-driving bindings fail validation deterministically.
- [ ] Existing manifests and Relay configs compile unchanged.
- [ ] Metadata and catalog fixtures cover no classifications, one classification, multiple facets, profile-derived bindings, and invalid conflicts.
- [ ] Documentation distinguishes concepts, classifications, dataset sensitivity, audit-sensitive fields, and redaction.
## Non-goals
- Classification-to-control mapping
- Runtime authorization, masking, or redaction changes
- Automatic source-data inspection
- Legal or regulatory applicability verdicts
- Treating HIPAA, GDPR, or DPI Safeguards names as interchangeable field classifications
Contributor guide
Research direction
Start with the related issues #590 and #591, then trace Manifest fields through CompiledField, Relay's metadata adapter, catalog JSON, and the stated JSON-LD/SHACL output. Done means classifications remain separate from concepts, validation reports field-addressed conflicts, existing configurations still compile, fixtures cover the listed cases, and documentation explains the metadata-only scope.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- backend-api-design, documentation
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100