{"schemaVersion":"mappls.ai-discovery.v1","name":"Mappls Developer Platform","description":"Source-grounded documentation, implementation plans, API contracts, runnable journeys, and read-only AI tools for the Mappls/MMI platform suite.","homepage":"https://developer.mappls.com","discovery":{"humanGuide":"https://developer.mappls.com/ai","llmsText":"https://developer.mappls.com/llms.txt","catalog":"https://developer.mappls.com/api/catalog","searchIndex":"https://developer.mappls.com/api/search","searchBoundary":{"indexedFields":["title","description","eyebrow","keywords","canonical path"],"queryProcessing":"browser-local","queryLogging":false,"queryAnalytics":false,"providerCalls":0,"maximumQueryCharacters":160,"maximumRenderedResults":12},"sourceEvidence":"https://developer.mappls.com/api/sources","repositoryReconciliation":"https://developer.mappls.com/api/reconciliation","releaseIntelligence":"https://developer.mappls.com/api/releases","documentationCoverage":"https://developer.mappls.com/api/coverage"},"interoperability":{"openapi31":"https://developer.mappls.com/openapi.json","openapiGuide":"https://developer.mappls.com/openapi","postmanCollection":"https://developer.mappls.com/postman/collection.json","postmanEnvironment":"https://developer.mappls.com/postman/environment.json","normalizedContracts":"https://developer.mappls.com/api/contracts","contractGenerations":"https://developer.mappls.com/api/contract-generations","contractGenerationGuide":"https://developer.mappls.com/api-generations","sdkCatalog":"https://developer.mappls.com/api/sdks","sdkGuide":"https://developer.mappls.com/sdks","authenticationCatalog":"https://developer.mappls.com/api/authentication","authenticationGuide":"https://developer.mappls.com/authentication","errorCatalog":"https://developer.mappls.com/api/errors","diagnosticsGuide":"https://developer.mappls.com/errors","environmentCatalog":"https://developer.mappls.com/api/environments","environmentGuide":"https://developer.mappls.com/environments","agentIntegrationCatalog":"https://developer.mappls.com/api/agent-integrations","agentIntegrationGuide":"https://developer.mappls.com/ai/agents","journeySimulationCatalog":"https://developer.mappls.com/api/journey-simulator","journeySimulationGuide":"https://developer.mappls.com/tools/journey-lab","journeyWorkshopCatalog":"https://developer.mappls.com/api/journey-workshops","journeyWorkshopTemplate":"https://developer.mappls.com/journeys/{journeySlug}/workshop","capabilityMatrix":"https://developer.mappls.com/api/capability-matrix","capabilityMatrixGuide":"https://developer.mappls.com/platforms/matrix","capabilityQualifications":"https://developer.mappls.com/api/capability-qualifications","capabilityQualificationGuide":"https://developer.mappls.com/platforms/qualify","liveConformance":"https://developer.mappls.com/api/conformance","liveConformanceGuide":"https://developer.mappls.com/conformance","learningPathTemplate":"https://developer.mappls.com/api/learning-path?useCase={useCaseSlug}&platform={platform}&experience={experience}","developerAcademy":"https://developer.mappls.com/academy","implementationRecipes":"https://developer.mappls.com/api/recipes","implementationRecipeGuide":"https://developer.mappls.com/recipes","integrationManifestTemplate":"https://developer.mappls.com/api/integration-manifest?useCase={useCaseSlug}&platform={platform}&mode={mode}","integrationManifestGuide":"https://developer.mappls.com/integration-manifests","sandbox":"https://developer.mappls.com/api/sandbox","sandboxGuide":"https://developer.mappls.com/sandbox","quickstarts":"https://developer.mappls.com/api/quickstarts","starterKits":"https://developer.mappls.com/api/starter-kits","sourceLaunchpads":"https://developer.mappls.com/api/launchpads","developerCli":"https://developer.mappls.com/downloads/mappls-developer-cli.zip","developerCliChecksum":"https://developer.mappls.com/downloads/mappls-developer-cli.zip.sha256","migrations":"https://developer.mappls.com/api/migrations","solutionPlanTemplate":"https://developer.mappls.com/api/solution-plan?useCase={useCaseSlug}&platform={platform}","statefulPlanTemplate":"https://developer.mappls.com/api/stateful-plan?product={productSlug}","events":"https://developer.mappls.com/api/events","eventSchema":"https://developer.mappls.com/events/schema.json","webhookGuide":"https://developer.mappls.com/webhooks","webhookGuideApi":"https://developer.mappls.com/api/webhook-guide","releases":"https://developer.mappls.com/api/releases","documentationCoverage":"https://developer.mappls.com/api/coverage"},"mcp":{"package":"@mappls/mcp-server","endpointPath":"/mcp","local":{"transport":"stdio","executable":"mappls-mcp","toolProfile":"live-read"},"remote":{"transport":"streamable-http","executable":"mappls-mcp-http","defaultToolProfile":"offline","authentication":"Controlled static-bearer; or OAuth JWT resource-server validation with exact issuer, resource audience, principal, client, expiry, and profile scope. Company OAuth 2.1 authorization-server registration remains required.","health":["/health/live","/health/ready"],"sessionMode":"stateless"},"profiles":{"offline":{"tools":32,"providerCredentialsRequired":false,"providerNetworkCalls":false},"live-read":{"tools":42,"providerCredentialsRequired":true,"providerNetworkCalls":true}},"resources":38,"prompts":2,"writesExposed":false},"coverage":{"agentPatterns":6,"agentGovernanceControls":12,"agentEvaluationDimensions":8,"journeySimulationScenarios":5,"journeySimulationFixturePaths":90,"journeyWorkshops":18,"journeyWorkshopLabs":144,"capabilityMatrixCells":130,"capabilityQualificationPlans":130,"personalizedLearningPaths":624,"implementationRecipes":48,"integrationManifests":624,"products":10,"platforms":13,"quickstarts":13,"starterKits":13,"sourceLaunchpads":60,"sourceStarterPacks":60,"apiOperations":162,"apiGenerationGroups":17,"apiGenerationVariants":34,"apiGenerationMigrationKits":17,"sdkEntries":58,"referenceGuides":82,"migrations":13,"tutorials":39,"industryBlueprints":16,"statefulJourneys":18,"eventContracts":138,"downloadableApps":20,"publicRepositories":82,"localRepositories":81,"sourceLifecycleRecords":82,"developerPlatformReleases":3,"documentationCoverageRows":105,"documentationOpenGaps":3,"sourceCompleteRows":79},"stateModels":{"values":["stateless","stateful","hybrid"],"rule":"Keep durable application and provider state outside model context; use the journey and stateful-planning surfaces before proposing operational workflows."},"contractGenerations":{"guide":"https://developer.mappls.com/api-generations","catalog":"https://developer.mappls.com/api/contract-generations","detailTemplate":"https://developer.mappls.com/api/contract-generations?slug={generationGroupSlug}","detailTool":"mappls_get_contract_generation","resource":"mappls://catalog/contract-generations","migrationKitCount":17,"migrationKitDownloadTemplate":"https://developer.mappls.com/downloads/api-generations/{generationGroupSlug}-migration-kit.zip","providerCalls":false,"writesExposed":false,"rule":"Compare exact retained source generations before changing adapters. The highest version-labelled declaration is preferred source evidence only—not proof of provider support, entitlement, compatibility, host availability, or production readiness."},"agentGovernance":{"guide":"https://developer.mappls.com/ai/agents","catalog":"https://developer.mappls.com/api/agent-integrations","plannerTool":"mappls_plan_agent_integration","resource":"mappls://catalog/agent-integrations","writesExposed":false,"rule":"Bind purpose, profile, exact tools, data class, durable state, human control, evaluations, budgets, audit, disablement, and release evidence outside model context before enabling live reads."},"journeySimulation":{"guide":"https://developer.mappls.com/tools/journey-lab","catalog":"https://developer.mappls.com/api/journey-simulator","simulatorTool":"mappls_simulate_journey","resource":"mappls://catalog/journey-simulator","scenarios":["complete-journey","idempotent-replay","stale-version","invalid-transition","unknown-outcome"],"providerCalls":false,"writesExposed":false,"rule":"Use deterministic application-owned fixtures to prove transitions, idempotency, optimistic concurrency, immutable events, and unknown-outcome reconciliation; never treat a passing fixture as provider, entitlement, webhook, or production evidence."},"journeyWorkshops":{"index":"https://developer.mappls.com/journeys","detailTemplate":"https://developer.mappls.com/journeys/{journeySlug}/workshop","catalog":"https://developer.mappls.com/api/journey-workshops","detailApiTemplate":"https://developer.mappls.com/api/journey-workshops?journey={journeySlug}","detailTool":"mappls_get_journey_workshop","resource":"mappls://catalog/journey-workshops","workshops":18,"labs":144,"providerCalls":false,"writesExposed":false,"rule":"Use the exact journey workshop to implement all states, commands, events, records, replay and concurrency controls, hostile fixtures, maintained capstone evidence, and production exit gates without manufacturing provider behavior."},"capabilityMatrix":{"guide":"https://developer.mappls.com/platforms/matrix","catalog":"https://developer.mappls.com/api/capability-matrix","detailTemplate":"https://developer.mappls.com/api/capability-matrix?product={productSlug}&platform={platformSlug}","detailTool":"mappls_get_capability_matrix","resource":"mappls://catalog/capability-matrix","cells":130,"providerCalls":false,"credentialsAccepted":false,"writesExposed":false,"rule":"Only an explicit canonical product-platform declaration creates a listed cell. Adjacent source, SDK, tutorial, starter, sample, or journey evidence must never be promoted to availability, entitlement, compatibility, support, or production approval."},"capabilityQualifications":{"guide":"https://developer.mappls.com/platforms/qualify","catalog":"https://developer.mappls.com/api/capability-qualifications","detailTemplate":"https://developer.mappls.com/api/capability-qualifications?product={productSlug}&platform={platformSlug}","downloadTemplate":"https://developer.mappls.com/api/capability-qualifications?product={productSlug}&platform={platformSlug}&download=1","detailTool":"mappls_get_capability_qualification","resource":"mappls://catalog/capability-qualifications","plans":130,"providerCalls":false,"credentialsAccepted":false,"providerPayloadsAccepted":false,"writesExposed":false,"productionApprovalGranted":false,"rule":"Qualification preserves the matrix decision, separates offline application proof from issued-account conformance and independent release authority, and adds mandatory replay, concurrency, unknown-outcome, and restart evidence for durable integrations."},"liveConformance":{"guide":"https://developer.mappls.com/conformance","catalog":"https://developer.mappls.com/api/conformance","planTemplate":"https://developer.mappls.com/api/conformance?operation={operation}&generation={generation}&region={region}","downloadTemplate":"https://developer.mappls.com/api/conformance?operation={operation}&generation={generation}&region={region}&download=1","plannerTool":"mappls_plan_live_conformance","resource":"mappls://catalog/live-conformance","reportSchemaVersion":"mappls.live-conformance-report.v1","executableReadOperations":8,"coveredProducts":3,"productFamilies":10,"inspectorExecution":"browser-local-only","providerCallsWhilePlanning":false,"credentialsAccepted":false,"providerPayloadsAccepted":false,"writesExposed":false,"productionApprovalGranted":false,"rule":"A passing report proves only the exact selected read, issued account authority, authentication generation, region, host, and observation time. Keep SDK, widget, stateful, privacy, quota, commercial, release, and deployment authority separate."},"webhooks":{"guide":"https://developer.mappls.com/webhooks","catalog":"https://developer.mappls.com/api/webhook-guide","mcpResource":"mappls://guides/webhooks","topics":["application.provisioning_requested.v1","application.provisioned.v1","usage.metered.v1","usage.threshold_reached.v1"],"signing":"${timestamp}.${eventId}.${rawBody}","providerPayloadClaims":0,"providerCalls":false,"writesExposed":false,"rule":"These four topics describe this developer console reference implementation. They are not Mappls product webhooks, InTouch payloads, or the 138 application-owned event blueprints."},"developerAcademy":{"guide":"https://developer.mappls.com/academy","planner":"https://developer.mappls.com/api/learning-path?useCase={useCaseSlug}&platform={platform}&experience={experience}","plannerTool":"mappls_plan_learning_path","resource":"mappls://catalog/learning-paths","experienceLevels":["beginner","intermediate","advanced"],"providerCalls":false,"writesExposed":false,"certificationClaimed":false,"deviceProgress":{"storage":"browser-local","synchronization":false,"analytics":false,"providerCalls":0,"credentialsAccepted":false,"personalDataAccepted":false,"maximumSavedPaths":12,"authority":"Self-recorded learning preference only. Completion is not Mappls certification, entitlement, provider conformance, release approval, or deployment evidence."},"rule":"Use the Academy to compose repository-backed practice, hostile-path journey evidence, and a maintained capstone. Completion never grants Mappls entitlement, certification, or production approval."},"implementationRecipes":{"guide":"https://developer.mappls.com/recipes","catalog":"https://developer.mappls.com/api/recipes","detailTemplate":"https://developer.mappls.com/api/recipes?slug={recipeSlug}","detailTool":"mappls_get_implementation_recipe","resource":"mappls://catalog/recipes","modes":["request-response","composed-experience","durable-operation"],"codeLanguages":8,"providerCalls":false,"writesExposed":false,"rule":"Choose an operating depth before implementation. Recipes compose canonical contracts, tutorials, journeys, recovery controls, and tested capstones, but never prove entitlement, package availability, payload compatibility, or production readiness."},"integrationManifests":{"guide":"https://developer.mappls.com/integration-manifests","template":"https://developer.mappls.com/api/integration-manifest?useCase={useCaseSlug}&platform={platform}&mode={mode}","tool":"mappls_build_integration_manifest","resource":"mappls://catalog/integration-manifests","combinations":624,"providerCalls":false,"writesExposed":false,"rule":"Commit the source-fingerprinted decision with application code, validate it in CI, and resolve account entitlement, exact host, region, quota, compatibility, and release approval independently."},"developerConsole":{"guide":"https://developer.mappls.com/console/apps","applicationBuildWorkspaceTemplate":"https://developer.mappls.com/console/apps/{applicationId}/build?useCase={useCaseSlug}&mode={mode}","applicationBuildPlanTemplate":"https://developer.mappls.com/api/apps/{applicationId}/build-plan?useCase={useCaseSlug}&mode={mode}","applicationIntegrationManifestTemplate":"https://developer.mappls.com/api/apps/{applicationId}/integration-manifest?useCase={useCaseSlug}&mode={mode}","applicationLaunchDossierTemplate":"https://developer.mappls.com/api/apps/{applicationId}/launch-dossier?useCase={useCaseSlug}&mode={mode}","applicationLaunchDossierSchema":"mappls.application-launch-dossier.v1","applicationReleaseHandoffTemplate":"https://developer.mappls.com/api/apps/{applicationId}/release-handoffs","applicationReleaseHandoffCompanyQueue":"https://developer.mappls.com/admin/releases","releaseDeploymentAdminCreate":"https://developer.mappls.com/api/admin/release-deployments","releaseDeploymentAdminTransitionTemplate":"https://developer.mappls.com/api/admin/release-deployments/{deploymentId}","releaseDeploymentTenantEvidenceTemplate":"https://developer.mappls.com/console/apps/{applicationId}/build","releaseDeploymentStatuses":["planned","authorized","canary","ramping","observing","reconciled","rolled_back","cancelled"],"releaseDeploymentSeparation":["creator","operator","authorizer"],"dataResilienceAdmin":"https://developer.mappls.com/admin/resilience","dataResilienceAdminApi":"https://developer.mappls.com/api/admin/data-resilience","dataResilienceAdminTransitionTemplate":"https://developer.mappls.com/api/admin/data-resilience/{exerciseId}","dataResilienceTenantEvidence":"https://developer.mappls.com/console/resilience","dataResilienceTenantApi":"https://developer.mappls.com/api/console/data-resilience","dataResilienceExerciseTypes":["restore","regional_failover"],"dataResilienceStatuses":["planned","authorized","running","evidence_submitted","reconciled","failed","cancelled"],"dataResilienceSeparation":["creator","authorizer","operator","data-owner"],"dataLifecycleAdmin":"https://developer.mappls.com/admin/data-lifecycle","dataLifecycleAdminApi":"https://developer.mappls.com/api/admin/data-lifecycle","dataLifecycleAdminTransitionTemplate":"https://developer.mappls.com/api/admin/data-lifecycle/{exerciseId}","dataLifecycleTenantEvidence":"https://developer.mappls.com/console/data-lifecycle","dataLifecycleTenantApi":"https://developer.mappls.com/api/console/data-lifecycle","dataLifecycleStatuses":["planned","authorized","running","evidence_submitted","reconciled","failed","cancelled"],"dataLifecycleSeparation":["creator","privacy-reviewer","operator","data-owner"],"applicationDataPracticesTenant":"https://developer.mappls.com/console/data-practices","applicationDataPracticesTenantApi":"https://developer.mappls.com/api/data-practices","applicationDataPracticesAdmin":"https://developer.mappls.com/admin/privacy","applicationDataPracticesAdminApi":"https://developer.mappls.com/api/admin/data-practices","applicationDataPracticesStatuses":["submitted","approved","rejected","cancelled","superseded"],"applicationDataPracticesDecisionBoundary":"Independent company review of a developer declaration; not legal basis, notice/consent verification, runtime inspection, or authorization to process or transfer data.","applicationRetirementsTenant":"https://developer.mappls.com/console/retirements","applicationRetirementsTenantApi":"https://developer.mappls.com/api/application-retirements","applicationRetirementsAdmin":"https://developer.mappls.com/admin/retirements","applicationRetirementsAdminApi":"https://developer.mappls.com/api/admin/application-retirements","applicationRetirementsSignedProviderResultApi":"https://developer.mappls.com/api/internal/application-retirement-events","applicationRetirementStatuses":["submitted","approved","rejected","cancelled","retired","failed"],"applicationRetirementBlockers":["active_credentials","active_webhooks","active_entitlements","pending_entitlement_requests","active_deployments","active_resilience_exercises","active_data_lifecycle_exercises"],"applicationRetirementDecisionBoundary":"Tenant request plus independent administrator review and separately signed provider reconciliation; never hard deletion, data export/deletion proof, legal-retention authority, downstream migration, or contractual closure.","developerSupportTenant":"https://developer.mappls.com/console/support","developerSupportTenantApi":"https://developer.mappls.com/api/support-requests","developerSupportAdmin":"https://developer.mappls.com/admin/support","developerSupportAdminApi":"https://developer.mappls.com/api/admin/support-requests","developerSupportStatuses":["submitted","acknowledged","resolved","cancelled"],"developerSupportBoundary":"A support request is a tenant-owned communication record. It does not grant Mappls access to credentials, payloads, precise locations, customer data, provider systems, or your application. Any investigation that needs privileged diagnostic access requires a separate, purpose-bound support case, step-up authentication, explicit scope, and an expiring delegated session.","organizationAccessPublic":"https://developer.mappls.com/get-started","organizationAccessPublicApi":"https://developer.mappls.com/api/organization-requests","organizationAccessCancellationApiTemplate":"https://developer.mappls.com/api/organization-requests/{requestId}","organizationAccessAdmin":"https://developer.mappls.com/admin/organization-requests","organizationAccessAdminApi":"https://developer.mappls.com/api/admin/organization-requests","organizationAccessReviewApiTemplate":"https://developer.mappls.com/api/admin/organization-requests/{requestId}","organizationAccessApprovedOwnerHandoffTemplate":"https://developer.mappls.com/admin/developers#developer-{developerId}","organizationAccessAdminCapabilities":["search-safe-fields","filter-status","inspect-immutable-timeline","approve-exact-version","reject-exact-version","continue-to-separate-owner-activation"],"organizationAccessStatuses":["submitted","approved","rejected","cancelled"],"organizationAccessBoundary":"A signed HTTP-only browser session—not email—owns pre-login visibility and cancellation. Independent stepped-up review of the exact version may provision an active organization and development project, but creates no sign-in authority, credential, entitlement, or production approval; first-owner OIDC activation remains separate.","organizationOwnerActivationAdmin":"https://developer.mappls.com/admin/developers","organizationOwnerActivationIssueApiTemplate":"https://developer.mappls.com/api/admin/developers/{developerId}/owner-invitation","organizationOwnerActivationAcceptanceEntry":"https://developer.mappls.com/auth/login?invitationToken={oneTimeToken}","organizationOwnerActivationPostClaim":"https://developer.mappls.com/console/get-started","organizationOwnerActivationBoundary":"Only a stepped-up platform administrator can issue or rotate the sole unclaimed owner invitation for an approved active organization. The raw 256-bit capability is returned once and only its SHA-256 digest is persisted; verified OIDC issuer-subject—not email—becomes the exact org_admin authority. Claim commits roster, binding, lifecycle work, events, and audit atomically; it neither completes external directory provisioning nor permits a second active owner.","teamInvitationIssueApi":"https://developer.mappls.com/api/team","teamInvitationAcceptanceEntry":"https://developer.mappls.com/auth/login?invitationToken={oneTimeToken}","teamInvitationBoundary":"Seven-day, one-use, 256-bit invitation capability; SHA-256 digest only at rest; verified OIDC issuer-subject is the identity authority; email is display metadata; roster, binding, events, and audit commit atomically; external directory completion remains separately reconciled.","teamOwnershipTransferTenant":"https://developer.mappls.com/console/team","teamOwnershipTransferTenantApi":"https://developer.mappls.com/api/team/ownership-transfers","teamOwnershipTransferAdminEvidence":"https://developer.mappls.com/admin/access","teamOwnershipTransferAdminApi":"https://developer.mappls.com/api/admin/team-ownership-transfers","teamOwnershipTransferStatuses":["pending","accepted","declined","cancelled","expired"],"teamOwnershipTransferBoundary":"Current owner request plus a named active administrator's separate governed identity; atomic sole-owner swap, seven-day expiry, immutable evidence, no platform override, and no tenant exposure of identity-binding identifiers.","accessCertificationTenant":"https://developer.mappls.com/console/team","accessCertificationTenantApi":"https://developer.mappls.com/api/team/access-certifications","accessCertificationAdmin":"https://developer.mappls.com/admin/access","accessCertificationAdminApi":"https://developer.mappls.com/api/admin/access-certifications","accessCertificationStatuses":["open","completed","completed_with_actions","cancelled","expired"],"accessCertificationDecisions":["retain","remediate"],"accessCertificationBoundary":"Immutable effective-access snapshot with separate tenant-owner and platform-identity lanes. Remediation emits governed work and never silently revokes access or proves downstream completion.","accessRemediationTenantApi":"https://developer.mappls.com/api/team/access-remediations","accessRemediationAdminApi":"https://developer.mappls.com/api/admin/access-remediations","accessRemediationStatuses":["requested","assigned","action_recorded","verified","overdue"],"accessRemediationCorrectiveActions":["suspend_member","set_member_role","transfer_ownership","revoke_identity"],"accessRemediationBoundary":"Assignment and action evidence never mutate access. A distinct assigned verifier closes only after the governed roster or identity-binding ledger exposes the exact approved corrective state.","identityLifecycleAdminApi":"https://developer.mappls.com/api/admin/identity-lifecycle","identityLifecycleSignedProviderResultApi":"https://developer.mappls.com/api/internal/identity-lifecycle-events","identityLifecycleOperations":["provision","reactivate","deprovision"],"identityLifecycleStatuses":["requested","succeeded","failed"],"identityLifecycleBoundary":"Every external directory operation binds one local issuer-subject binding version. Deprovisioning succeeds only with a signed provider result that also confirms provider-session revocation; callbacks never grant or mutate local access.","privilegedAccessAdmin":"https://developer.mappls.com/admin/access","privilegedAccessDashboardApi":"https://developer.mappls.com/api/admin/privileged-access","privilegedStepUpChallengeApi":"https://developer.mappls.com/api/admin/step-up-challenges","privilegedSupportDelegationApi":"https://developer.mappls.com/api/admin/support-delegations","privilegedActionClasses":["support_delegation_request","support_delegation_approval","support_session_start","emergency_access_activation","emergency_access_review","sensitive_admin_change"],"sensitiveAdminOperations":["developer.provision","developer.approve","developer.suspend","developer.resume","organization_owner.invite","organization_request.approve","organization_request.reject","identity_binding.create","identity_binding.revoke","identity_binding.reactivate","application.provision","entitlement_request.approve","entitlement_request.reject","entitlement.update","entitlement_drift.acknowledge","entitlement_drift.request_remediation","incident.declare","incident.identified","incident.monitoring","incident.resolved","incident.postmortem.publish","support_case.create","support_case.close","release_record.create","release_record.evidence","release_record.submit_review","release_record.cancel","release_record.approve","release_record.reject","release_handoff.accept","release_handoff.reject","release_deployment.create","release_deployment.authorize","release_deployment.start_canary","release_deployment.advance","release_deployment.begin_observation","release_deployment.reconcile","release_deployment.rollback","release_deployment.cancel","plan.create","rate_card.create","rate_card.activate","invoice.generate","invoice.adjust","invoice.finalize","billing_dispute.accept","billing_dispute.reject","outbox.replay","webhook_policy.update","slo_policy.update","identity_lifecycle.retry","application_retirement.approve","application_retirement.reject","application_retirement.retry","mcp_client.approve","mcp_client.reject","webhook_replay_request.approve","webhook_replay_request.reject","documentation_evidence.create","documentation_evidence.submit","documentation_evidence.approve","documentation_evidence.reject","documentation_evidence.cancel","documentation_feedback.triage","documentation_feedback.submit","documentation_feedback.approve","documentation_feedback.reject","documentation_feedback.dismiss","access_certification.create","access_certification.cancel","access_certification_item.retain","access_certification_item.remediate","access_remediation.assign","access_remediation.record_action","access_remediation.verify","data_resilience.create","data_resilience.authorize","data_resilience.start","data_resilience.submit_evidence","data_resilience.reconcile","data_resilience.fail","data_resilience.cancel","data_lifecycle.create","data_lifecycle.authorize","data_lifecycle.start","data_lifecycle.submit_evidence","data_lifecycle.reconcile","data_lifecycle.fail","data_lifecycle.cancel","data_practice.approve","data_practice.reject"],"sensitiveAdminAssertionBinding":["canonical_request_sha256","operation","target_type","target_id","target_version","actor_subject","identity_binding_version"],"privilegedDelegationCapabilities":["organization_metadata:read","application_metadata:read","operations_evidence:read"],"privilegedAccessBoundary":"Recent strong authentication creates one short-lived, one-use assertion and never grants a role. Sensitive developer, application, identity, entitlement, incident, release, handoff, and deployment administration additionally binds the canonical request SHA-256, operation, target, target version, actor, and identity-binding version. Standard support delegation requires a separate approver. Emergency access lasts at most 15 minutes, is incident/evidence bound, and requires independent post-review within 24 hours. The resulting support view preserves the support actor, exposes no writes or secrets, and is never represented as the customer.","applicationLaunchDossierAuthorities":["source-contract","application-configuration","provider-conformance","security-privacy","operations","production-release","deployment"],"applicationAiWorkspaceIndex":"https://developer.mappls.com/console/ai","applicationAiWorkspaceTemplate":"https://developer.mappls.com/console/apps/{applicationId}/ai?pattern={patternSlug}&mode={offlineOrLiveRead}","applicationAiPlanTemplate":"https://developer.mappls.com/api/apps/{applicationId}/ai-plan?pattern={patternSlug}&mode={offlineOrLiveRead}","adminAiGovernance":"https://developer.mappls.com/admin/ai","adminAiReadiness":"https://developer.mappls.com/api/admin/ai-readiness","authenticationRequired":true,"tenantScoped":true,"modes":["request-response","composed-experience","durable-operation"],"providerCallsForPlanning":false,"writesExposed":false,"rule":"Use the authenticated Application Build Workspace for exact implementation planning, its self-verifying launch dossier for the developer-to-independent-review handoff, and the Application AI Workspace for a smallest-authority MCP profile, exact tool allowlist, provider-product boundary, hostile evaluations, and independent release controls. The dossier digest is self-generated, not signed; cross-check the canonical application manifest. The launch dossier always keeps provider conformance, security/privacy, operations, production release, and deployment authority unproven. A separate admin-only deployment record requires an approved release plus accepted application handoff, separates creator/operator/authorizer, moves traffic monotonically, retains rollback and reconciliation evidence, and never rewrites release gates. Application data-practices revisions let a tenant declare purpose, data categories, processing modes, subjects, retention, residency, and notice/assessment identities for independent admin review; review never establishes legal basis, verifies the artifacts, inspects runtime data, or authorizes processing or transfer. Application retirement separately requires a tenant request, independent blocker-aware administrator review, and signed provider reconciliation; it retains the application and evidence and never proves data deletion/export, legal disposition, downstream migration, contractual closure, or unobserved provider work. Developer support requests are bounded communications: acknowledgement or resolution never authorizes privileged diagnostics, grants entitlement, proves an incident or SLA, or creates a support case. Privileged investigation remains a separate purpose-bound, stepped-up, scoped, expiring journey. Data-resilience exercises separately bind backup/runbook identities, RPO/RTO targets, measured recovery evidence, zero-variance record reconciliation, and an independent data-owner decision. Data-lifecycle exercises bind policy/query digests and separately assigned privacy, operator, and data-owner decisions to sampled retention, deletion, residency, and backup-scope measurements. These ledgers record evidence but do not execute infrastructure or data mutations, establish legal basis, or prove unobserved data. Tenants receive only bounded or redacted evidence. None of these surfaces returns credential material or provider payloads, registers an OAuth client, calls a provider while planning, or grants access."},"runnableLearning":{"developerCliGuide":"https://developer.mappls.com/cli","quickstartIndex":"https://developer.mappls.com/quickstart","starterKitIndex":"https://developer.mappls.com/starter-kits","sourceLaunchpadIndex":"https://developer.mappls.com/launchpads","sdkIndex":"https://developer.mappls.com/sdks","authenticationCenter":"https://developer.mappls.com/authentication","errorDiagnosticsCenter":"https://developer.mappls.com/errors","environmentReadinessCenter":"https://developer.mappls.com/environments","agentIntegrationCenter":"https://developer.mappls.com/ai/agents","statefulJourneyLab":"https://developer.mappls.com/tools/journey-lab","journeyWorkshopTemplate":"https://developer.mappls.com/journeys/{journeySlug}/workshop","developerAcademy":"https://developer.mappls.com/academy","implementationRecipeLibrary":"https://developer.mappls.com/recipes","integrationManifestBuilder":"https://developer.mappls.com/integration-manifests","tenantApplicationBuildWorkspace":"https://developer.mappls.com/console/apps","tenantApplicationAiWorkspace":"https://developer.mappls.com/console/ai","tutorialIndex":"https://developer.mappls.com/tutorials","industryIndex":"https://developer.mappls.com/use-cases","journeyIndex":"https://developer.mappls.com/journeys","eventIndex":"https://developer.mappls.com/events","webhookReceiverGuide":"https://developer.mappls.com/webhooks","sampleIndex":"https://developer.mappls.com/samples"},"trust":{"trustCenter":"https://developer.mappls.com/trust","sourceLedger":"https://developer.mappls.com/sources/reconciliation","releaseCenter":"https://developer.mappls.com/changelog","documentationCoverage":"https://developer.mappls.com/coverage","adminDocumentationQueue":"https://developer.mappls.com/admin/documentation","adminDocumentationEvidenceApi":"https://developer.mappls.com/api/admin/documentation-evidence","publicDocumentationFeedbackApi":"https://developer.mappls.com/api/documentation-feedback","adminDocumentationFeedbackQueue":"https://developer.mappls.com/admin/documentation-feedback","adminDocumentationFeedbackApi":"https://developer.mappls.com/api/admin/documentation-feedback","implementationStatus":"docs/IMPLEMENTATION_STATUS.md","rules":["Never put a Mappls provider credential in model context, committed client configuration, URLs returned to a model, or browser code.","Treat repository evidence as implementation evidence, not proof of current account entitlement or compatibility.","Preserve Mappls Pins, source fingerprints, provider identity, region, and provenance across a journey.","Require separate authorization, durable state, idempotency, reconciliation, audit, and human control for consequential writes.","Documentation evidence approval is an authenticated ingestion handoff, never authority to change the public catalog without independent fingerprinting, regeneration, and tests.","Documentation feedback is anonymous, exact-page and revision bound, and privacy minimized. Actionable correction evidence requires an assigned owner and a different reviewer; approval emits a publishing handoff but never proves deployment or provider behavior."]}}