naftiko: 1.0.0-alpha2 info: label: Secure Code Warrior Portal API — Metrics description: 'Secure Code Warrior Portal API — Metrics. 3 operations. Lead operation: Get Most Engaged Teams. Self-contained Naftiko capability covering one Secure Code Warrior business surface.' tags: - Secure Code Warrior - Metrics created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: SECURE_CODE_WARRIOR_API_KEY: SECURE_CODE_WARRIOR_API_KEY capability: consumes: - type: http namespace: portal-metrics baseUri: https://portal-api.securecodewarrior.com/api/v2 description: Secure Code Warrior Portal API — Metrics business capability. Self-contained, no shared references. resources: - name: metrics-activity-teams-most-engaged path: /metrics/activity/teams/most-engaged operations: - name: getmostengagedteams method: GET description: Get Most Engaged Teams outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: report_period in: query type: integer - name: number_of_teams in: query type: integer - name: tags in: query type: string - name: page in: query type: integer - name: metrics-activity-users-most-engaged path: /metrics/activity/users/most-engaged operations: - name: getmostengagedusers method: GET description: Get Most Engaged Users outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: report_period in: query type: integer - name: number_of_users in: query type: integer - name: team_name in: query type: string - name: tags in: query type: string - name: page in: query type: integer - name: metrics-time-spent path: /metrics/time-spent operations: - name: gettimespent method: GET description: Get Time Spent outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: page in: query type: integer - name: id in: query type: string - name: email in: query type: string - name: tags in: query type: string - name: team in: query type: string - name: startdate in: query type: string - name: enddate in: query type: string authentication: type: apikey key: X-API-Key value: '{{env.SECURE_CODE_WARRIOR_API_KEY}}' placement: header exposes: - type: rest namespace: portal-metrics-rest port: 8080 description: REST adapter for Secure Code Warrior Portal API — Metrics. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/metrics/activity/teams/most-engaged name: metrics-activity-teams-most-engaged description: REST surface for metrics-activity-teams-most-engaged. operations: - method: GET name: getmostengagedteams description: Get Most Engaged Teams call: portal-metrics.getmostengagedteams with: report_period: rest.report_period number_of_teams: rest.number_of_teams tags: rest.tags page: rest.page outputParameters: - type: object mapping: $. - path: /v1/metrics/activity/users/most-engaged name: metrics-activity-users-most-engaged description: REST surface for metrics-activity-users-most-engaged. operations: - method: GET name: getmostengagedusers description: Get Most Engaged Users call: portal-metrics.getmostengagedusers with: report_period: rest.report_period number_of_users: rest.number_of_users team_name: rest.team_name tags: rest.tags page: rest.page outputParameters: - type: object mapping: $. - path: /v1/metrics/time-spent name: metrics-time-spent description: REST surface for metrics-time-spent. operations: - method: GET name: gettimespent description: Get Time Spent call: portal-metrics.gettimespent with: page: rest.page id: rest.id email: rest.email tags: rest.tags team: rest.team startdate: rest.startdate enddate: rest.enddate outputParameters: - type: object mapping: $. - type: mcp namespace: portal-metrics-mcp port: 9090 transport: http description: MCP adapter for Secure Code Warrior Portal API — Metrics. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-most-engaged-teams description: Get Most Engaged Teams hints: readOnly: true destructive: false idempotent: true call: portal-metrics.getmostengagedteams with: report_period: tools.report_period number_of_teams: tools.number_of_teams tags: tools.tags page: tools.page outputParameters: - type: object mapping: $. - name: get-most-engaged-users description: Get Most Engaged Users hints: readOnly: true destructive: false idempotent: true call: portal-metrics.getmostengagedusers with: report_period: tools.report_period number_of_users: tools.number_of_users team_name: tools.team_name tags: tools.tags page: tools.page outputParameters: - type: object mapping: $. - name: get-time-spent description: Get Time Spent hints: readOnly: true destructive: false idempotent: true call: portal-metrics.gettimespent with: page: tools.page id: tools.id email: tools.email tags: tools.tags team: tools.team startdate: tools.startdate enddate: tools.enddate outputParameters: - type: object mapping: $.