-
Read-only MCP tool surface (ADR-063): 8 schemas (endpoint, job, mapping, synchronization, synchronization_contract, call_log, job_log, synchronization_log) declare an
x-openregister-mcpdialect exposing onlysearchandgetverbs, so AI agents can query integration state via MCP. Credential-bearing schemas (source, consumer) are deliberately excluded; no write/destructive verbs are exposed. -
LTI Tool-role governance layer: a
status(pending | approved | suspended) trust gate onlti_platform/lti_tool— a registration cannot complete a login/launch/token-issuance flow until an admin-gatedapprove()action transitions it, and apending/suspendedregistration is rejected with the exact same HTTP shape as an unregistered issuer (no status-enumeration side channel). Newlti_identity_linkschema +LtiIdentityLinkServiceresolving a validated launch'ssubclaim to a NextclouduserIdunder a conservativemanualLinkOnlydefault (no email/name matching, ever) or an explicit per-platformautoProvisionAsRoleopt-in bounded to a named group.lti_deployment.resourceLinkMappings[]+LtiLaunchService::resolveResourceMapping()— a per-resource-link routing seam mirroringgradeSink/rosterSource's shape. All three sit strictly after the existing cryptographic launch-validation chain; no existing REQ-LTI-001..010 protocol behaviour is modified. (lti-tool-provider-role) -
LTI 1.3 / LTI Advantage adapter: OIDC third-party-initiated login + signed-JWT launch validation (Tool role), Platform-role launch initiation, Deep Linking 2.0 (both directions), Assignment & Grade Services (RFC 7523 service-token issuance, inbound score →
nl.conduction.lti.ags.score.receivedCloudEvent, outbound score publish/result read), Names & Role Provisioning Services (inbound roster read via the ADR-008register/schemadispatch, outbound roster pull), and per-registration signing-key lifecycle (generate/rotate/retire with a 7-day grace window) + JWKS publish. Three new OpenRegister schemas (lti_platform,lti_tool,lti_deployment). Newlib/Service/Lti/*namespace,LtiController, dedicated/api/lti/*+/.well-known/lti/*routes,LtiKeyRetirementJobbackground job. Tenant-wide key-management UI (Beheer > Authenticatie) and the Adapters catalogue card are NOT yet built — backend contract only in this pass. (lti-13-platform) -
Pre-flight
storage_migratedassertion inApplication::register(): the app now fails fast with a\LogicException(naming theocc openconnector:migrate-storagerunbook command) when the legacy→OpenRegister storage migration has not run. Bypassable in CI/test viaOPENCONNECTOR_SKIP_STORAGE_MIGRATED_ASSERT=1. (openconnector-services-direct-or-usage, Task 1) -
VNG Klantinteracties adapter: five dialect-agnostic gateway mechanics — a composite transactional fan-out Rule type (
lib/Rule/CompositeFanoutRule.php),referentienummergeneration (lib/Rule/ReferentienummerRule.php), an AVG BSN policy Rule that hashes inbound BSNs (11-proef + SHA-256) and guards against raw BSNs outbound (lib/Rule/AvgBsnPolicyRule.php), VNG list-filter (field__icontains,field__gte, ...) andpartijIdentificatorfilter translation plus bounded-depthexpand=relation embedding (MappingService::translateVngFilterOperators/expandRelations), and an absolute self-URL/HAL_linksoutput helper plus opt-in PUT-all-mandatory vs PATCH-partial enforcement (EndpointService::renderSelfUrlAndHal/checkPutMandatoryFields) — plus the packaged VNG Klantinteracties configuration set (configuration/vng-klantinteracties.oas.json) mappingklantcontacten/partijen/betrokkenen/digitaleadressenand the compositemaak-klantcontactonto pipelinq's canonical schema.org CRM schemas. (vng-klantinteracties-adapter)
- i18n(schema): re-authored the 24 remaining Dutch-language schema property
titles to English across
event_subscription(thenotificatiesaction block),ris_sync_record,dso_verzoek/dso_message,notificaties_abonnement,kiss_klantcontact,iwmo_ijw_messageandstuf_message— titles are the canonical UI label source and must be English-authored; Dutch display is now carried byl10n/nl.json/nl.js. Property keys and all other schema fields are unchanged. Registerinfo.versionbumped 1.1.0 → 1.1.1.
- New features for this release
- Changes in existing functionality for this release
- Bug fixes for this release
- New features for this release
- Changes in existing functionality for this release
- Bug fixes for this release
- Initial release