naftiko: 1.0.0-alpha2 info: label: CloudAlly API — Authentication description: 'CloudAlly API — Authentication. 3 operations. Lead operation: Authenticate a portal user. Self-contained Naftiko capability covering one Cloudally business surface.' tags: - Cloudally - Authentication created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: CLOUDALLY_API_KEY: CLOUDALLY_API_KEY capability: consumes: - type: http namespace: cloudally-authentication baseUri: https://api.cloudally.com description: CloudAlly API — Authentication business capability. Self-contained, no shared references. resources: - name: auth path: /auth operations: - name: login method: POST description: Authenticate a portal user outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: auth-partner path: /auth/partner operations: - name: partnerlogin method: POST description: Authenticate a partner client outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: auth-refresh path: /auth/refresh operations: - name: refreshtoken method: POST description: Refresh an access token outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true authentication: type: bearer token: '{{env.CLOUDALLY_API_KEY}}' exposes: - type: rest namespace: cloudally-authentication-rest port: 8080 description: REST adapter for CloudAlly API — Authentication. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/auth name: auth description: REST surface for auth. operations: - method: POST name: login description: Authenticate a portal user call: cloudally-authentication.login with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/auth/partner name: auth-partner description: REST surface for auth-partner. operations: - method: POST name: partnerlogin description: Authenticate a partner client call: cloudally-authentication.partnerlogin with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/auth/refresh name: auth-refresh description: REST surface for auth-refresh. operations: - method: POST name: refreshtoken description: Refresh an access token call: cloudally-authentication.refreshtoken with: body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: cloudally-authentication-mcp port: 9090 transport: http description: MCP adapter for CloudAlly API — Authentication. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: authenticate-portal-user description: Authenticate a portal user hints: readOnly: false destructive: false idempotent: false call: cloudally-authentication.login with: body: tools.body outputParameters: - type: object mapping: $. - name: authenticate-partner-client description: Authenticate a partner client hints: readOnly: false destructive: false idempotent: false call: cloudally-authentication.partnerlogin with: body: tools.body outputParameters: - type: object mapping: $. - name: refresh-access-token description: Refresh an access token hints: readOnly: false destructive: false idempotent: false call: cloudally-authentication.refreshtoken with: body: tools.body outputParameters: - type: object mapping: $.