registrystack / registrystack/registry-stack

Add field classification bindings to Manifest and Relay catalog metadata

Open
#592 0 comments 0 reactions 0 assignees View on GitHub
area:docs area:manifest area:relay criticality:p2 enhancement post-1.0 rust triage:roadmap
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.