Skip to content

feat(notary): support bounded target attributes in consultations#371

Draft
jeremi wants to merge 3 commits into
mainfrom
agent/target-attribute-consultations-opencrvs-example
Draft

feat(notary): support bounded target attributes in consultations#371
jeremi wants to merge 3 commits into
mainfrom
agent/target-attribute-consultations-opencrvs-example

Conversation

@jeremi

@jeremi jeremi commented Jul 16, 2026

Copy link
Copy Markdown
Member

Summary

  • allow Relay consultation inputs to map an explicitly named request.target.attributes.<stable-name> value
  • preserve supported string, Boolean, and integer target attribute types through project fixtures, Notary evaluation, and the Relay JSON request
  • keep target IDs and identifiers string-only
  • document the bounded mapping grammar and clarify that target attributes are caller-supplied, not authenticated by the mapping

This is generic Registry Stack support. It does not add an OpenCRVS-specific example or modify lab/.

Security boundary

  • mappings must name one target attribute explicitly using the stable-name grammar [a-z][a-z0-9_]{0,63}
  • mappings cannot traverse arbitrary target object paths
  • null, object, array, floating-point, and unsupported request values fail before consultation execution
  • the verified Relay contract controls whether a supported value is encoded as a JSON string, Boolean, or integer
  • non-canonical Boolean and integer values fail before the network request

An authored mapping admits a caller-supplied value. It does not authenticate that value.

Verification

  • cargo fmt --all --check
  • cargo clippy --locked -p registry-notary-server -p registryctl --all-targets -- -D warnings
  • cargo test --locked -p registry-notary-core
  • cargo test --locked -p registry-notary-server
  • cargo test --locked -p registryctl
  • npm test in docs/site
  • npm run check in docs/site, including current and archived documentation builds, SEO checks, and built-link validation

The branch is rebased directly onto the current main.

@jeremi
jeremi force-pushed the agent/target-attribute-consultations-opencrvs-example branch from e1a8e53 to 6b76ded Compare July 16, 2026 14:07
@jeremi jeremi changed the title feat(notary): support target attributes in Relay consultations feat(notary): support bounded target attributes in consultations Jul 16, 2026
Base automatically changed from agent/notary-postgresql to main July 16, 2026 14:28
jeremi added 3 commits July 16, 2026 21:38
Signed-off-by: Jeremi Joslin <jeremi@joslin.fr>
Signed-off-by: Jeremi Joslin <jeremi@joslin.fr>
Signed-off-by: Jeremi Joslin <jeremi@joslin.fr>
@jeremi
jeremi force-pushed the agent/target-attribute-consultations-opencrvs-example branch from 4a991c7 to f337330 Compare July 16, 2026 14:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant