Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Directory.Build.props
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project>
<PropertyGroup>
<VersionPrefix Condition="'$(VersionPrefix)' == ''">0.1.2</VersionPrefix>
<VersionSuffix Condition="'$(VersionSuffix)' == ''">beta.10</VersionSuffix>
<VersionSuffix Condition="'$(VersionSuffix)' == ''">beta.11</VersionSuffix>

<Version Condition="'$(Version)' == '' and '$(VersionSuffix)' == ''">$(VersionPrefix)</Version>
<Version Condition="'$(Version)' == '' and '$(VersionSuffix)' != ''">$(VersionPrefix)-$(VersionSuffix)</Version>
Expand Down
9 changes: 7 additions & 2 deletions docs/contracts/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,19 @@
[operation catalog](mcp-operation-catalog.json) and
[immutable beta.3 baseline](mcp-operation-catalog-beta3.json) and
[beta.4 baseline](mcp-operation-catalog-beta4.json), plus the exact
[beta.7 source baseline](mcp-operation-catalog-beta7.json), with the
[beta.7 source baseline](mcp-operation-catalog-beta7.json) and
[beta.10 baseline](mcp-operation-catalog-beta10.json), with the
[current old/new operation mapping](mcp-operation-inventory-delta.json) and
[retained beta.4 mapping](mcp-operation-inventory-delta-beta4.json) and
[retained beta.7 mapping](mcp-operation-inventory-delta-beta7.json)
[retained beta.7 mapping](mcp-operation-inventory-delta-beta7.json) and
[retained beta.8 mapping](mcp-operation-inventory-delta-beta8.json)
- [System pairing protocol v1](bostec-pairing.v1.md)
- [RatelDesk incident-create v1](rateldesk-incident-create.v1.md),
[schema](rateldesk-incident-create.v1.json),
[frozen fixtures](rateldesk-incident-create.v1.fixtures.json) and
[checksums](rateldesk-incident-create.v1.SHA256SUMS)

These versioned contracts remain distinct from account-owned browser pairing.
The current catalog is revision `2026-10-25.beta11-contracts-v25`: 390 operations
on 37 tools. Its beta.10-to-beta.11 mapping retains all 389 prior operation
contracts unchanged and adds confirmed inbound email rule deletion.
68,779 changes: 68,779 additions & 0 deletions docs/contracts/mcp-operation-catalog-beta10.json

Large diffs are not rendered by default.

132 changes: 128 additions & 4 deletions docs/contracts/mcp-operation-catalog.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{
"schemaHash": "fc3603d87ad56fc994cd77385474874a5bc5c9df79a7dc825f5785460463a6f7",
"catalogRevision": "2026-10-20.beta9-contracts-v24",
"catalogHash": "44d767508d35628a4a9c562e842834ad97053435133890646b417edd5b189f74",
"operationCount": 389,
"schemaHash": "b66e9eca38b35b255b4f98e92db50a2f08eda7675ca72a88c2aec5e64c51e16c",
"catalogRevision": "2026-10-25.beta11-contracts-v25",
"catalogHash": "8a73e9abd9a2804afe8bb12de063617e94cd25dae7ce16acf15d31082e234972",
"operationCount": 390,
"operations": [
{
"tool": "helpdesk_auth",
Expand Down Expand Up @@ -21841,6 +21841,68 @@
"description": "All operation-specific fields belong inside this request object. Put API mutation fields inside request.body; route and query selectors stay alongside body."
}
},
{
"tool": "helpdesk_email_settings",
"operation": "delete_rule",
"requestContract": "OperatorRequest",
"method": "DELETE",
"pathTemplate": "/api/v1/inbound-email-rules/{ruleId}",
"effect": "write",
"readOnly": false,
"confirmationRequired": true,
"previewSupported": true,
"description": "Delete one explicitly selected inbound rule while preserving its message processing audit history. Already started message work is not cancelled or replayed.",
"sensitiveResultFields": [],
"transports": [
"stdio",
"http"
],
"transportSupport": {
"stdio": "Available with explicitly configured API identity; authority and prerequisites apply",
"http": "requires_explicit_administrator_identity: ordinary bounded integration credential is denied"
},
"credentialModes": [
"explicit mcp-owner resource-bound grant from a current instance administrator (HTTP gateway)",
"explicit external Authentik identity satisfying HelpdeskAdmin"
],
"authority": "HelpdeskAdmin; existing API identity, tenant and record-specific checks apply",
"boundedIntegrationCredential": {
"support": "denied_by_policy",
"reason": "HelpdeskAdmin is instance-wide authority. Assignable scoped grants do not confer it; use an explicitly supported administrator identity."
},
"ownerAdministrationCredential": {
"purpose": "mcp-owner",
"grantKind": "owner-administration",
"support": "subject_to_current_owner_authority_and_domain_prerequisites",
"reason": "Separate explicit administrator consent creates a resource-bound owner grant. The API revalidates the owning account\u0027s current administrator authority, credential expiry/revocation and MCP resource on each call; ordinary tenant grants never gain this authority."
},
"identifiers": [
{
"field": "ruleId",
"type": "string",
"source": "Existing authorized record; synthetic arbitrary identifiers do not establish a positive operation"
}
],
"prerequisites": [
"Configured exact API target and valid supported identity; no authentication-mode or target fallback on denial/unavailability.",
"Use the typed request.body and confirmed operation, then independently read the changed record and its durable effect. Preview performs no upstream request. Any prerequisite external integration must already be configured through a supported secure pairing flow."
],
"requestSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"ruleId": {
"type": "string",
"minLength": 1,
"maxLength": 128
}
},
"required": [
"ruleId"
],
"description": "All operation-specific fields belong inside this request object. Put API mutation fields inside request.body; route and query selectors stay alongside body."
}
},
{
"tool": "helpdesk_email_settings",
"operation": "reorder_rules",
Expand Down Expand Up @@ -40760,6 +40822,34 @@
"scope": "Synthetic schema construction only. Record existence, authority, effects and live prerequisites require independent fixtures and readback."
}
},
{
"tool": "helpdesk_email_settings",
"operation": "delete_rule",
"examples": {
"schemaValidConfirmed": {
"operation": "delete_rule",
"request": {
"ruleId": "Example"
},
"confirm": true
},
"schemaValidPreview": {
"operation": "delete_rule",
"request": {
"ruleId": "Example"
},
"confirm": false
},
"schemaInvalid": {
"operation": "not_a_supported_operation",
"request": {
"ruleId": "Example"
},
"confirm": true
},
"scope": "Synthetic schema construction only. Record existence, authority, effects and live prerequisites require independent fixtures and readback."
}
},
{
"tool": "helpdesk_email_settings",
"operation": "reorder_rules",
Expand Down Expand Up @@ -57556,6 +57646,40 @@
"request"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"operation": {
"const": "delete_rule",
"description": "Delete one explicitly selected inbound rule while preserving its message processing audit history. Already started message work is not cancelled or replayed. Select this operation in the outer operation field."
},
"confirm": {
"type": "boolean",
"default": false,
"description": "Required as true to perform this mutation. Calling with false performs no upstream change."
},
"request": {
"type": "object",
"additionalProperties": false,
"properties": {
"ruleId": {
"type": "string",
"minLength": 1,
"maxLength": 128
}
},
"required": [
"ruleId"
],
"description": "All operation-specific fields belong inside this request object. Put API mutation fields inside request.body; route and query selectors stay alongside body."
}
},
"required": [
"operation",
"request"
]
},
{
"type": "object",
"additionalProperties": false,
Expand Down
17 changes: 11 additions & 6 deletions docs/contracts/mcp-operation-contracts.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,15 @@ credential requirements, authority, identifiers and prerequisites. The API
resolves live access; discovery does not grant permission. These MCP contracts
apply to stdio and HTTP transports against the same product version; the
[CLI guide](../integrations/cli-stdio.md) describes command-line syntax.
The [inventory delta](mcp-operation-inventory-delta.json) compares the complete
[beta.7 source catalog](mcp-operation-catalog-beta7.json) with beta.8. It retains
all 155 historical operations, records every new named operator adapter and
identifies semantic changes separately from runtime acceptance evidence.
The current catalog revision `2026-10-25.beta11-contracts-v25` contains 390
operations on 37 tools. The [inventory delta](mcp-operation-inventory-delta.json)
compares the complete [beta.10 source catalog](mcp-operation-catalog-beta10.json)
with beta.11: all 389 prior operation contracts remain unchanged, and
`helpdesk_email_settings.delete_rule` adds confirmed administrator deletion
while preserving delivery and rule audit history. The
[retained beta.8 mapping](mcp-operation-inventory-delta-beta8.json) records the
earlier operator expansion. These source mappings remain distinct from fresh
runtime acceptance evidence.

## Requests, previews and effects

Expand Down Expand Up @@ -383,8 +388,8 @@ additive read of the current API execution principal at `/api/v1/auth/me` in eve
mode. In external HTTP mode it reports the separately configured downstream
principal, not the ingress OAuth caller. Existing `helpdesk_auth.status` keeps
its original mode-specific behavior and remains the only operation authorized
for a temporary setup verifier. The complete beta.7 catalog is retained as an
immutable baseline. Use the current generated catalog for beta.8 counts and
for a temporary setup verifier. Historical catalogs, including the complete
beta.10 catalog, are retained as immutable baselines. Use the current generated catalog for beta.11 counts and
schemas. Follow the [owner-administration approval procedure](../mcp-http/configuration.md#approve-an-agent-to-administer-the-instance)
for caller-bound full HTTP authority; the [external provisioning procedure](../mcp-http/configuration.md#provision-an-explicit-external-authority)
remains available for independently configured external principals. Both require
Expand Down
Loading
Loading