Mitratech · OpenAPI Overlay 1.0.0

API Evangelist enrichment overlay for the Mitratech TAP API

9 actions 9 updates documentation
Generated by API Evangelist Written by API Evangelist tooling for Mitratech's API. It is a proposal applied on top of the contract, not a document Mitratech publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-agentic-accessdescriptionx-consequencecontactx-api-evangelist-enrichmentsecurityDefinitionssecurityx-domain-standard

Targets 9

$.info
$
$.paths['/v1/workflows/delete'].post
$.paths['/v1/workflows/delete/filter'].post
$.paths['/v1/workflows/delete/name'].post
$.paths['/v1/workflows/archive'].post
$.paths['/v1/users'].delete
$.paths['/v1/workflows/{templateId}/form'].post
$.paths['/healthcheck'].get

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enrichment overlay for the Mitratech TAP API
  version: 1.0.0
x-provenance:
  generated: '2026-09-13'
  method: generated
  source: openapi/_original/mitratech-tap-swagger.json
  extends: openapi/_original/mitratech-tap-swagger.json
  note: >-
    Non-destructive Overlay 1.0.0 capturing API Evangelist's enrichment of the harvested TAP
    Swagger 2.0 document. It adds the auth model the original omits entirely, declares the missing
    401/403 responses, and marks the destructive and irreversible operations. The original document
    is never mutated. Note the base document is Swagger 2.0, so `securityDefinitions` is the correct
    target key rather than `components.securitySchemes`.
actions:
- target: $.info
  update:
    description: >-
      REST API for Mitratech TAP (ThinkSmart Automation Platform) no-code workflow automation.
      Multi-tenant: the host and the first path segment are both the tenant name
      (https://{tenant}.tap.thinksmart.com/{tenant}/api, staging {tenant}.stagingtap.thinksmart.com).
      All requests require an OAuth 2.0 bearer token from /auth/identity/connect/token.
    contact:
      name: Mitratech Support
      url: https://success.mitratech.com/TAP/TAP_Solutions/APIs_and_Integrations/TAP_API_Documentation
    x-api-evangelist-enrichment: https://github.com/api-evangelist/mitratech
- target: $
  update:
    securityDefinitions:
      tap_oauth2:
        type: oauth2
        flow: password
        tokenUrl: https://{tenant}.tap.thinksmart.com/{tenant}/auth/identity/connect/token
        scopes:
          api: Full API access, bounded by the permissions of the TAP user account the token was issued for.
        description: >-
          Added by overlay. The original document declares no securityDefinitions at all even though
          every operation requires a bearer token. Source:
          https://success.mitratech.com/TAP/TAP_Solutions/APIs_and_Integrations/TAP_API_Documentation
    security:
    - tap_oauth2:
      - api
    x-domain-standard:
      id: odata
      level: uri-conventions-only
      metadata_document: false
      note: >-
        $top/$skip/$filter/$select/$orderby/$inlinecount are declared on the user collection and the
        definitions block carries ASP.NET Web API OData model types, but no $metadata (CSDL) document
        is served — probed 2026-09-13, HTTP 404.
- target: $.paths['/v1/workflows/delete'].post
  update:
    x-consequence: irreversible
    x-agentic-access:
      action_class: destroy
      consequence: irreversible
      escalation: human-approval-required
    description: >-
      Deletes records by resultSetId. Deleted records are removed permanently. THERE IS NO REVERSAL
      OPERATION: unlike /v1/workflows/archive, which is undone by /v1/workflows/restore, delete is
      terminal. No dry-run mode, no idempotency key, and the 200 response carries no schema, so the
      caller receives no manifest of what was destroyed.
- target: $.paths['/v1/workflows/delete/filter'].post
  update:
    x-consequence: irreversible
    x-agentic-access:
      action_class: destroy
      consequence: irreversible
      scope: unbounded
      escalation: human-approval-required
    description: >-
      Deletes every workflow record matching the supplied filter, permanently. The blast radius is
      defined by a saved filter the caller may not be able to enumerate first. Highest-risk operation
      in the contract.
- target: $.paths['/v1/workflows/delete/name'].post
  update:
    x-consequence: irreversible
    x-agentic-access:
      action_class: destroy
      consequence: irreversible
      escalation: human-approval-required
- target: $.paths['/v1/workflows/archive'].post
  update:
    x-consequence: reversible
    x-reversal:
      operationId: Workflows_RestoreRecord
      path: /v1/workflows/restore
      window: undocumented
- target: $.paths['/v1/users'].delete
  update:
    x-consequence: irreversible
    x-agentic-access:
      action_class: destroy
      consequence: unknown
      escalation: human-approval-required
    description: >-
      Deletes one or more TAP users, identified by Login. No restore-user operation exists in the
      contract and no reversal window is documented.
- target: $.paths['/v1/workflows/{templateId}/form'].post
  update:
    x-idempotency: none
    x-agentic-access:
      action_class: create
      consequence: billable-or-material
      retry_safety: unsafe
    description: >-
      Initiates a workflow instance from a template. NOT IDEMPOTENT and no idempotency key exists:
      a retry after a timeout starts a second legal intake, contract request or compliance workflow,
      with no way to detect or collapse the duplicate.
- target: $.paths['/healthcheck'].get
  update:
    x-agentic-access:
      action_class: read
      consequence: none
x-unresolved-gaps:
- >-
  operationId collisions: Workflows_ArchiveRecord, Workflows_RestoreRecord, Workflows_GetComments,
  Workflows_GetAuditTrail and Workflows_DeleteRecords are each reused across two or three distinct
  paths. OpenAPI requires operationId to be unique across the document. Client generators will either
  collide or silently rename, so an agent cannot reliably address these operations by id. Fixing this
  requires renaming operations in the source document and is out of scope for a non-destructive
  overlay.
- >-
  31 of 49 operations declare only a 200 response and no response schema, including every mutating
  user and workflow operation. The overlay cannot invent the response bodies.
- The document is Swagger 2.0; an upgrade to OpenAPI 3.1 would be a conversion, not an overlay.