Skip to content

Add a trusted flag to mCSD administration directories#497

Draft
Dirklectisch wants to merge 6 commits intomainfrom
trusted-root-mcsd
Draft

Add a trusted flag to mCSD administration directories#497
Dirklectisch wants to merge 6 commits intomainfrom
trusted-root-mcsd

Conversation

@Dirklectisch
Copy link
Copy Markdown
Contributor

Summary

Add a trusted flag to mCSD administration directories. A trusted directory's contents
are accepted without per-resource validation, intended for directories the
operator controls or otherwise trusts (e.g. the LRZA).

Configured per directory via mcsd.admin.<name>.trusted: true. Defaults to false, so
existing deployments are unaffected.

Behavior

When trusted: true on a registered directory:

  • ValidateUpdate short-circuits after the AllowedResourceTypes check — per-resource
    spoofing checks (URA membership, partOf chain, endpoint reference, etc.) are skipped.
  • ValidateParentOrganizations is skipped.
  • The parent-organization map is only built when discovery is also enabled (it's the only
    remaining consumer in trusted mode).
  • The URA-identifier-change re-query is skipped — a URA change syncs like any other change
    rather than triggering a full re-fetch.

Explicitly unchanged by trusted:

  • Sync cadence: incremental sync via _since and lastUpdateTimes still applies.
  • Discovery: a trusted root with discover: true still discovers and registers leaf
    directories. Discovered children are always registered as trusted: false.
  • The isDiscoverableDirectory filter (root directories only sync mCSD-directory
    Endpoint resources) is unchanged.
  • AllowedResourceTypes is still enforced.

Comment thread config/knooppunt.yml
Comment on lines +14 to +17
# admin:
# example:
# fhirbaseurl: "https://fhir.example.org/fhir"
# trusted: true
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Or we define a directory with key/name root (here example) that is always trusted? Because in the centralized model, there will always be 1 admin directory, and it will always be trusted.

Then we can also remove the decentralized app logic in the future (when we don't need it any more), without changing the configuration structure.

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.

2 participants