naftiko: 1.0.0-alpha2 info: label: Workday Extend App Development description: Unified capability for building, deploying, and managing custom Workday Extend applications. Combines app lifecycle management, orchestration automation, and custom object data modeling into a single developer workflow. tags: - Workday - Extend - Custom Applications - Orchestration - Custom Objects - Platform Development created: '2026-05-03' modified: '2026-05-06' binds: - namespace: env keys: WORKDAY_EXTEND_ACCESS_TOKEN: WORKDAY_EXTEND_ACCESS_TOKEN WORKDAY_TENANT: WORKDAY_TENANT capability: consumes: - type: http namespace: extend baseUri: https://api.workday.com/api/extend/v1/{tenant} description: Workday Extend application management API authentication: type: bearer token: '{{WORKDAY_EXTEND_ACCESS_TOKEN}}' resources: - name: apps path: /apps description: Extend application registration and management operations: - name: list-apps method: GET description: List Extend applications inputParameters: - name: limit in: query type: integer required: false description: Maximum number of results to return - name: offset in: query type: integer required: false description: Number of results to skip for pagination - name: search in: query type: string required: false description: Search term to filter results outputRawFormat: json outputParameters: - name: result type: object value: $. - name: create-app method: POST description: Register a new Extend application outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: name: '{{tools.name}}' description: '{{tools.description}}' category: '{{tools.category}}' - name: apps-by-id path: /apps/{appId} description: Manage a specific Extend application operations: - name: get-app method: GET description: Retrieve an Extend application inputParameters: - name: appId in: path type: string required: true description: The unique identifier of the Extend application outputRawFormat: json outputParameters: - name: result type: object value: $. - name: update-app method: PATCH description: Update an Extend application inputParameters: - name: appId in: path type: string required: true description: The unique identifier of the Extend application outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: name: '{{tools.name}}' description: '{{tools.description}}' - name: delete-app method: DELETE description: Delete an Extend application inputParameters: - name: appId in: path type: string required: true description: The unique identifier of the Extend application outputRawFormat: json outputParameters: - name: result type: object value: $. - name: app-versions path: /apps/{appId}/versions description: Manage application versions operations: - name: list-app-versions method: GET description: List application versions inputParameters: - name: appId in: path type: string required: true description: The unique identifier of the Extend application outputRawFormat: json outputParameters: - name: result type: object value: $. - name: create-app-version method: POST description: Create a new application version inputParameters: - name: appId in: path type: string required: true description: The unique identifier of the Extend application outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: versionNumber: '{{tools.versionNumber}}' changelog: '{{tools.changelog}}' - name: app-deployments path: /apps/{appId}/deployments description: Manage application deployments operations: - name: list-app-deployments method: GET description: List application deployments inputParameters: - name: appId in: path type: string required: true description: The unique identifier of the Extend application outputRawFormat: json outputParameters: - name: result type: object value: $. - name: deploy-app method: POST description: Deploy an Extend application inputParameters: - name: appId in: path type: string required: true description: The unique identifier of the Extend application outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: versionId: '{{tools.versionId}}' environment: '{{tools.environment}}' - name: app-configurations path: /apps/{appId}/configurations description: Manage application configuration settings operations: - name: list-app-configurations method: GET description: List application configurations inputParameters: - name: appId in: path type: string required: true description: The unique identifier of the Extend application outputRawFormat: json outputParameters: - name: result type: object value: $. - name: update-app-configurations method: PUT description: Update application configurations inputParameters: - name: appId in: path type: string required: true description: The unique identifier of the Extend application outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: configurations: '{{tools.configurations}}' - type: http namespace: orchestration baseUri: https://api.workday.com/api/orchestrate/v1/{tenant} description: Workday orchestration management and execution API authentication: type: bearer token: '{{WORKDAY_EXTEND_ACCESS_TOKEN}}' resources: - name: orchestrations path: /orchestrations description: Orchestration definition management operations: - name: list-orchestrations method: GET description: List orchestrations inputParameters: - name: limit in: query type: integer required: false description: Maximum number of results - name: offset in: query type: integer required: false description: Results offset for pagination - name: search in: query type: string required: false description: Search term outputRawFormat: json outputParameters: - name: result type: object value: $. - name: create-orchestration method: POST description: Create an orchestration outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: name: '{{tools.name}}' description: '{{tools.description}}' - name: orchestration-executions path: /orchestrations/{orchestrationId}/executions description: Orchestration execution management operations: - name: list-executions method: GET description: List orchestration executions inputParameters: - name: orchestrationId in: path type: string required: true description: The orchestration identifier outputRawFormat: json outputParameters: - name: result type: object value: $. - name: launch-execution method: POST description: Launch an orchestration execution inputParameters: - name: orchestrationId in: path type: string required: true description: The orchestration identifier outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: inputData: '{{tools.inputData}}' - name: orchestration-triggers path: /orchestrations/{orchestrationId}/triggers description: Orchestration trigger configuration operations: - name: list-triggers method: GET description: List orchestration triggers inputParameters: - name: orchestrationId in: path type: string required: true description: The orchestration identifier outputRawFormat: json outputParameters: - name: result type: object value: $. - name: create-trigger method: POST description: Create an orchestration trigger inputParameters: - name: orchestrationId in: path type: string required: true description: The orchestration identifier outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: triggerType: '{{tools.triggerType}}' configuration: '{{tools.configuration}}' - type: http namespace: custom-objects baseUri: https://api.workday.com/api/customObjects/v1/{tenant} description: Custom object definition and instance management authentication: type: bearer token: '{{WORKDAY_EXTEND_ACCESS_TOKEN}}' resources: - name: custom-object-definitions path: /customObjectDefinitions description: Custom object type definitions operations: - name: list-custom-object-definitions method: GET description: List custom object definitions inputParameters: - name: limit in: query type: integer required: false description: Maximum number of results outputRawFormat: json outputParameters: - name: result type: object value: $. - name: create-custom-object-definition method: POST description: Create a custom object definition outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: name: '{{tools.name}}' description: '{{tools.description}}' - name: custom-object-worker-data path: /workers/{workerId}/customObjects/{objectType} description: Custom object data attached to workers operations: - name: get-worker-custom-object-data method: GET description: Retrieve custom object data for a worker inputParameters: - name: workerId in: path type: string required: true description: The worker identifier - name: objectType in: path type: string required: true description: The custom object type name outputRawFormat: json outputParameters: - name: result type: object value: $. - name: upsert-worker-custom-object-data method: PUT description: Create or update custom object data for a worker inputParameters: - name: workerId in: path type: string required: true description: The worker identifier - name: objectType in: path type: string required: true description: The custom object type name outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: data: '{{tools.data}}' exposes: - type: rest port: 8080 namespace: workday-extend-api description: Unified REST API for Workday Extend app development lifecycle. resources: - path: /v1/apps name: apps description: Manage Extend application registrations operations: - method: GET name: list-apps description: List all Extend applications call: extend.list-apps outputParameters: - type: object mapping: $. - method: POST name: create-app description: Register a new Extend application call: extend.create-app outputParameters: - type: object mapping: $. - path: /v1/apps/{appId} name: app-detail description: Manage a specific Extend application operations: - method: GET name: get-app description: Retrieve an Extend application call: extend.get-app with: appId: rest.appId outputParameters: - type: object mapping: $. - method: PATCH name: update-app description: Update an Extend application call: extend.update-app with: appId: rest.appId outputParameters: - type: object mapping: $. - method: DELETE name: delete-app description: Delete an Extend application call: extend.delete-app with: appId: rest.appId outputParameters: - type: object mapping: $. - path: /v1/apps/{appId}/versions name: app-versions description: Manage application versions operations: - method: GET name: list-app-versions description: List application versions call: extend.list-app-versions with: appId: rest.appId outputParameters: - type: object mapping: $. - method: POST name: create-app-version description: Create a new application version call: extend.create-app-version with: appId: rest.appId outputParameters: - type: object mapping: $. - path: /v1/apps/{appId}/deployments name: app-deployments description: Manage application deployments operations: - method: GET name: list-app-deployments description: List application deployments call: extend.list-app-deployments with: appId: rest.appId outputParameters: - type: object mapping: $. - method: POST name: deploy-app description: Deploy an Extend application call: extend.deploy-app with: appId: rest.appId outputParameters: - type: object mapping: $. - path: /v1/apps/{appId}/configurations name: app-configurations description: Manage application configuration settings operations: - method: GET name: list-app-configurations description: List application configurations call: extend.list-app-configurations with: appId: rest.appId outputParameters: - type: object mapping: $. - method: PUT name: update-app-configurations description: Update application configurations call: extend.update-app-configurations with: appId: rest.appId outputParameters: - type: object mapping: $. - path: /v1/orchestrations name: orchestrations description: Manage business process orchestrations operations: - method: GET name: list-orchestrations description: List orchestrations call: orchestration.list-orchestrations outputParameters: - type: object mapping: $. - method: POST name: create-orchestration description: Create an orchestration call: orchestration.create-orchestration outputParameters: - type: object mapping: $. - path: /v1/orchestrations/{orchestrationId}/executions name: orchestration-executions description: Orchestration execution management operations: - method: GET name: list-executions description: List orchestration executions call: orchestration.list-executions with: orchestrationId: rest.orchestrationId outputParameters: - type: object mapping: $. - method: POST name: launch-execution description: Launch an orchestration execution call: orchestration.launch-execution with: orchestrationId: rest.orchestrationId outputParameters: - type: object mapping: $. - path: /v1/custom-object-definitions name: custom-object-definitions description: Custom object type definitions operations: - method: GET name: list-custom-object-definitions description: List custom object definitions call: custom-objects.list-custom-object-definitions outputParameters: - type: object mapping: $. - path: /v1/workers/{workerId}/custom-objects/{objectType} name: worker-custom-objects description: Custom object data for workers operations: - method: GET name: get-worker-custom-object-data description: Retrieve custom object data for a worker call: custom-objects.get-worker-custom-object-data with: workerId: rest.workerId objectType: rest.objectType outputParameters: - type: object mapping: $. - method: PUT name: upsert-worker-custom-object-data description: Create or update custom object data for a worker call: custom-objects.upsert-worker-custom-object-data with: workerId: rest.workerId objectType: rest.objectType outputParameters: - type: object mapping: $. - type: mcp port: 9090 namespace: workday-extend-mcp transport: http description: MCP server for AI-assisted Workday Extend application development and orchestration. tools: - name: list-apps description: List all Extend applications registered in the Workday tenant hints: readOnly: true openWorld: true call: extend.list-apps outputParameters: - type: object mapping: $. - name: create-app description: Register a new Workday Extend custom application hints: readOnly: false destructive: false call: extend.create-app outputParameters: - type: object mapping: $. - name: get-app description: Get details of a specific Extend application including status and version hints: readOnly: true openWorld: true call: extend.get-app with: appId: tools.appId outputParameters: - type: object mapping: $. - name: update-app description: Update metadata or configuration of an Extend application hints: readOnly: false destructive: false idempotent: true call: extend.update-app with: appId: tools.appId outputParameters: - type: object mapping: $. - name: delete-app description: Remove an Extend application from the tenant hints: readOnly: false destructive: true idempotent: true call: extend.delete-app with: appId: tools.appId outputParameters: - type: object mapping: $. - name: list-app-versions description: List all versions of an Extend application hints: readOnly: true openWorld: true call: extend.list-app-versions with: appId: tools.appId outputParameters: - type: object mapping: $. - name: create-app-version description: Create a new version of an Extend application hints: readOnly: false destructive: false call: extend.create-app-version with: appId: tools.appId outputParameters: - type: object mapping: $. - name: list-app-deployments description: List deployment history for an Extend application hints: readOnly: true openWorld: true call: extend.list-app-deployments with: appId: tools.appId outputParameters: - type: object mapping: $. - name: deploy-app description: Deploy an Extend application version to sandbox or production hints: readOnly: false destructive: false call: extend.deploy-app with: appId: tools.appId outputParameters: - type: object mapping: $. - name: list-app-configurations description: List configuration settings for an Extend application hints: readOnly: true openWorld: true call: extend.list-app-configurations with: appId: tools.appId outputParameters: - type: object mapping: $. - name: update-app-configurations description: Update configuration settings for an Extend application hints: readOnly: false destructive: false idempotent: true call: extend.update-app-configurations with: appId: tools.appId outputParameters: - type: object mapping: $. - name: list-orchestrations description: List all orchestration definitions in the tenant hints: readOnly: true openWorld: true call: orchestration.list-orchestrations outputParameters: - type: object mapping: $. - name: create-orchestration description: Create a new business process orchestration hints: readOnly: false destructive: false call: orchestration.create-orchestration outputParameters: - type: object mapping: $. - name: list-executions description: List executions for a specific orchestration hints: readOnly: true openWorld: true call: orchestration.list-executions with: orchestrationId: tools.orchestrationId outputParameters: - type: object mapping: $. - name: launch-execution description: Launch a new orchestration execution with input data hints: readOnly: false destructive: false call: orchestration.launch-execution with: orchestrationId: tools.orchestrationId outputParameters: - type: object mapping: $. - name: list-custom-object-definitions description: List all custom object type definitions in the tenant hints: readOnly: true openWorld: true call: custom-objects.list-custom-object-definitions outputParameters: - type: object mapping: $. - name: get-worker-custom-object-data description: Retrieve custom object data attached to a worker record hints: readOnly: true openWorld: true call: custom-objects.get-worker-custom-object-data with: workerId: tools.workerId objectType: tools.objectType outputParameters: - type: object mapping: $. - name: upsert-worker-custom-object-data description: Create or update custom object data for a worker hints: readOnly: false destructive: false idempotent: true call: custom-objects.upsert-worker-custom-object-data with: workerId: tools.workerId objectType: tools.objectType outputParameters: - type: object mapping: $.