naftiko: 1.0.0-alpha2 info: label: Core — publish description: 'Core — publish. 11 operations. Lead operation: Checks & creates a publish record for a CLI publish. Self-contained Naftiko capability covering one business surface.' tags: - Scalar - publish created: '2026-05-20' modified: '2026-05-20' binds: - namespace: env keys: SCALAR_API_KEY: SCALAR_API_KEY capability: consumes: - type: http namespace: core-publish baseUri: https://example.com description: Core — publish business capability. Self-contained, no shared references. resources: - name: publish-dns-check path: /publish/dns-check operations: - name: postpublishdnscheck method: POST description: Validates the DNS records for a specified subdomain outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: unpublish path: /unpublish operations: - name: deleteunpublish method: DELETE description: Removes the active deploy from a project, without deleting cached assets outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: publish path: /publish operations: - name: deletepublish method: DELETE description: Delete a publish record and its cached assets outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: pubsub-publish-deleted path: /pubsub/publish-deleted operations: - name: postpubsubpublishdeleted method: POST description: Deletes a cached build from the GCP bucket outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: publish-redeploy path: /publish/redeploy operations: - name: postpublishredeploy method: POST description: Redeploy a previous publish outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: publish-bulk path: /publish/bulk operations: - name: deletepublishbulk method: DELETE description: Bulk delete all non-deployed publish records outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: publish-cancel path: /publish/cancel operations: - name: postpublishcancel method: POST description: Cancel an in-flight publish before it goes live outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: publish-logs-publishuid path: /publish/logs/{publishUid} operations: - name: getpublishlogspublishuid method: GET description: Checks & creates a publish record for a CLI publish outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: publishUid in: path type: string description: path parameter publishUid. required: true - name: publish-domains-availability path: /publish/domains/availability operations: - name: postpublishdomainsavailability method: POST description: Checks availability for publish domain outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: publish-domains-project path: /publish/domains/project operations: - name: postpublishdomainsproject method: POST description: Returns active domains for a project outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: publish-deploy-check path: /publish/deploy-check operations: - name: getpublishdeploycheck method: GET description: Verifies a specific site is deployed and SSL certificates can be issued for it. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: domain in: query type: string description: query parameter domain. required: true exposes: - type: rest namespace: core-publish-rest port: 8080 description: REST adapter for Core — publish. One resource per consumed operation, prefixed with /v1. resources: - path: /v1/publish/dns-check name: publish-dns-check description: REST surface for publish-dns-check. operations: - method: POST name: postpublishdnscheck description: Validates the DNS records for a specified subdomain call: core-publish.postpublishdnscheck with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/unpublish name: unpublish description: REST surface for unpublish. operations: - method: DELETE name: deleteunpublish description: Removes the active deploy from a project, without deleting cached assets call: core-publish.deleteunpublish with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/publish name: publish description: REST surface for publish. operations: - method: DELETE name: deletepublish description: Delete a publish record and its cached assets call: core-publish.deletepublish with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/pubsub/publish-deleted name: pubsub-publish-deleted description: REST surface for pubsub-publish-deleted. operations: - method: POST name: postpubsubpublishdeleted description: Deletes a cached build from the GCP bucket call: core-publish.postpubsubpublishdeleted with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/publish/redeploy name: publish-redeploy description: REST surface for publish-redeploy. operations: - method: POST name: postpublishredeploy description: Redeploy a previous publish call: core-publish.postpublishredeploy with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/publish/bulk name: publish-bulk description: REST surface for publish-bulk. operations: - method: DELETE name: deletepublishbulk description: Bulk delete all non-deployed publish records call: core-publish.deletepublishbulk with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/publish/cancel name: publish-cancel description: REST surface for publish-cancel. operations: - method: POST name: postpublishcancel description: Cancel an in-flight publish before it goes live call: core-publish.postpublishcancel with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/publish/logs/{publishUid} name: publish-logs-publishuid description: REST surface for publish-logs-publishuid. operations: - method: GET name: getpublishlogspublishuid description: Checks & creates a publish record for a CLI publish call: core-publish.getpublishlogspublishuid with: publishUid: rest.publishUid outputParameters: - type: object mapping: $. - path: /v1/publish/domains/availability name: publish-domains-availability description: REST surface for publish-domains-availability. operations: - method: POST name: postpublishdomainsavailability description: Checks availability for publish domain call: core-publish.postpublishdomainsavailability with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/publish/domains/project name: publish-domains-project description: REST surface for publish-domains-project. operations: - method: POST name: postpublishdomainsproject description: Returns active domains for a project call: core-publish.postpublishdomainsproject with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/publish/deploy-check name: publish-deploy-check description: REST surface for publish-deploy-check. operations: - method: GET name: getpublishdeploycheck description: Verifies a specific site is deployed and SSL certificates can be issued for it. call: core-publish.getpublishdeploycheck with: domain: rest.domain outputParameters: - type: object mapping: $. - type: mcp namespace: core-publish-mcp port: 9090 transport: http description: MCP adapter for Core — publish. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: scalar-postpublishdnscheck description: Validates the DNS records for a specified subdomain hints: readOnly: false destructive: false idempotent: false call: core-publish.postpublishdnscheck with: body: tools.body outputParameters: - type: object mapping: $. - name: scalar-deleteunpublish description: Removes the active deploy from a project, without deleting cached assets hints: readOnly: false destructive: true idempotent: true call: core-publish.deleteunpublish with: body: tools.body outputParameters: - type: object mapping: $. - name: scalar-deletepublish description: Delete a publish record and its cached assets hints: readOnly: false destructive: true idempotent: true call: core-publish.deletepublish with: body: tools.body outputParameters: - type: object mapping: $. - name: scalar-postpubsubpublishdeleted description: Deletes a cached build from the GCP bucket hints: readOnly: false destructive: false idempotent: false call: core-publish.postpubsubpublishdeleted with: body: tools.body outputParameters: - type: object mapping: $. - name: scalar-postpublishredeploy description: Redeploy a previous publish hints: readOnly: false destructive: false idempotent: false call: core-publish.postpublishredeploy with: body: tools.body outputParameters: - type: object mapping: $. - name: scalar-deletepublishbulk description: Bulk delete all non-deployed publish records hints: readOnly: false destructive: true idempotent: true call: core-publish.deletepublishbulk with: body: tools.body outputParameters: - type: object mapping: $. - name: scalar-postpublishcancel description: Cancel an in-flight publish before it goes live hints: readOnly: false destructive: false idempotent: false call: core-publish.postpublishcancel with: body: tools.body outputParameters: - type: object mapping: $. - name: scalar-getpublishlogspublishuid description: Checks & creates a publish record for a CLI publish hints: readOnly: true destructive: false idempotent: true call: core-publish.getpublishlogspublishuid with: publishUid: tools.publishUid outputParameters: - type: object mapping: $. - name: scalar-postpublishdomainsavailability description: Checks availability for publish domain hints: readOnly: false destructive: false idempotent: false call: core-publish.postpublishdomainsavailability with: body: tools.body outputParameters: - type: object mapping: $. - name: scalar-postpublishdomainsproject description: Returns active domains for a project hints: readOnly: false destructive: false idempotent: false call: core-publish.postpublishdomainsproject with: body: tools.body outputParameters: - type: object mapping: $. - name: scalar-getpublishdeploycheck description: Verifies a specific site is deployed and SSL certificates can be issued for it. hints: readOnly: true destructive: false idempotent: true call: core-publish.getpublishdeploycheck with: domain: tools.domain outputParameters: - type: object mapping: $.