Skip to content

OpenRegister silently drops portalMessage when it carries x-openregister-mcp — import still reports success #154

Description

@rubenvdlinde

portalMessage is the only schema in portaliq_register.json that carried
x-openregister-mcp, and it was the only one of thirteen that OpenRegister
would not import. The E2E seed said so on every run since #112:

[ci-seed] settings#load HTTP 200
{"success":true,"message":"Configuration imported successfully.","version":"0.12.0"}
[ci-seed] schemas present: [... 12 slugs, no portalmessage ...]
##[error]Portaliq schemas missing after import: ['portalMessage']

Note the shape of that: the import reports success, and one schema is
silently absent. Nothing in the response says a schema was rejected.

Bisect

Measured against the E2E job, not inferred:

commit E2E
ac96e1cc — before #112 success
c287056f — the #112 merge, which adds the dialect failure
every run since failure

The dialect looked valid

Which is why this needs someone who knows the importer:

  • both verbs declare scope: read and readOnlyHint: true
  • both carry agent-facing description prose
  • all three search.filtersread, organisation, subjectRef — name real
    declared properties of portalMessage, so McpAnnotationValidator::validateFilters()
    should accept them

So the documented rules appear satisfied and the schema is still dropped.

What was done for now

The dialect is removed (portaliq#153's follow-up) so the register returns to the
shape that last seeded green — 13 schemas, 13 authorization blocks. The portal
inbox has a data surface again.

What is actually wanted

  1. Why does OpenRegister reject this schema? If it is a validator rule, the
    error needs to surface — an import that answers "success": true while
    dropping a schema is the worst possible failure mode, and it cost this repo
    every E2E run for as long as the dialect was in place.
  2. Once understood, reintroduce MCP on portalMessage. The intent behind portaliq-mcp-adoption: built by hydra for #111 #112
    was sound: a read-only search/get surface over portal inbox messages, with
    portalAccount, portalSession and exampleDocument deliberately excluded
    so no derived tool can return an IdP claims blob or a session jti. That
    exclusion is still asserted by
    PortaliqRegisterConfigTest::testIdentityAndSessionSchemasCarryNoMcpDialect,
    which is kept precisely so it starts doing real work again the moment a
    dialect returns.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

triageAwaiting triage

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions