naftiko: 1.0.0-alpha2 info: label: FOSSology API — User description: 'FOSSology API — User. 9 operations. Lead operation: Update Permission. Self-contained Naftiko capability covering one Fossology business surface.' tags: - Fossology - User created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: FOSSOLOGY_API_KEY: FOSSOLOGY_API_KEY capability: consumes: - type: http namespace: fossology-user baseUri: http://localhost/repo/api/v1 description: FOSSology API — User business capability. Self-contained, no shared references. resources: - name: groups-id-user-userId path: /groups/{id}/user/{userId} operations: - name: updatepermissionbygroupidanduserid method: PUT description: Update Permission outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: users path: /users operations: - name: createuser method: POST description: Create a new user outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: getusers method: GET description: Get the registered users outputRawFormat: json outputParameters: - name: result type: object value: $. - name: users-self path: /users/self operations: - name: getself method: GET description: Get the information about logged in user outputRawFormat: json outputParameters: - name: result type: object value: $. - name: users-tokens path: /users/tokens operations: - name: createrestapitoken method: POST description: Create a new REST API Token outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: users-tokens-type path: /users/tokens/{type} operations: - name: gettokensbytype method: GET description: Get all the REST API tokens (active | expired) outputRawFormat: json outputParameters: - name: result type: object value: $. - name: users-id path: /users/{id} operations: - name: getuserbyid method: GET description: Get user by id outputRawFormat: json outputParameters: - name: result type: object value: $. - name: modifyuserbyid method: PUT description: Edit user details by id outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: deleteuserbyid method: DELETE description: Delete user by id outputRawFormat: json outputParameters: - name: result type: object value: $. authentication: type: bearer token: '{{env.FOSSOLOGY_API_KEY}}' exposes: - type: rest namespace: fossology-user-rest port: 8080 description: REST adapter for FOSSology API — User. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/groups/{id}/user/{userid} name: groups-id-user-userid description: REST surface for groups-id-user-userId. operations: - method: PUT name: updatepermissionbygroupidanduserid description: Update Permission call: fossology-user.updatepermissionbygroupidanduserid with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/users name: users description: REST surface for users. operations: - method: POST name: createuser description: Create a new user call: fossology-user.createuser with: body: rest.body outputParameters: - type: object mapping: $. - method: GET name: getusers description: Get the registered users call: fossology-user.getusers outputParameters: - type: object mapping: $. - path: /v1/users/self name: users-self description: REST surface for users-self. operations: - method: GET name: getself description: Get the information about logged in user call: fossology-user.getself outputParameters: - type: object mapping: $. - path: /v1/users/tokens name: users-tokens description: REST surface for users-tokens. operations: - method: POST name: createrestapitoken description: Create a new REST API Token call: fossology-user.createrestapitoken with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/users/tokens/{type} name: users-tokens-type description: REST surface for users-tokens-type. operations: - method: GET name: gettokensbytype description: Get all the REST API tokens (active | expired) call: fossology-user.gettokensbytype outputParameters: - type: object mapping: $. - path: /v1/users/{id} name: users-id description: REST surface for users-id. operations: - method: GET name: getuserbyid description: Get user by id call: fossology-user.getuserbyid outputParameters: - type: object mapping: $. - method: PUT name: modifyuserbyid description: Edit user details by id call: fossology-user.modifyuserbyid with: body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deleteuserbyid description: Delete user by id call: fossology-user.deleteuserbyid outputParameters: - type: object mapping: $. - type: mcp namespace: fossology-user-mcp port: 9090 transport: http description: MCP adapter for FOSSology API — User. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: update-permission description: Update Permission hints: readOnly: false destructive: false idempotent: true call: fossology-user.updatepermissionbygroupidanduserid with: body: tools.body outputParameters: - type: object mapping: $. - name: create-new-user description: Create a new user hints: readOnly: false destructive: false idempotent: false call: fossology-user.createuser with: body: tools.body outputParameters: - type: object mapping: $. - name: get-registered-users description: Get the registered users hints: readOnly: true destructive: false idempotent: true call: fossology-user.getusers outputParameters: - type: object mapping: $. - name: get-information-about-logged-user description: Get the information about logged in user hints: readOnly: true destructive: false idempotent: true call: fossology-user.getself outputParameters: - type: object mapping: $. - name: create-new-rest-api-token description: Create a new REST API Token hints: readOnly: false destructive: false idempotent: false call: fossology-user.createrestapitoken with: body: tools.body outputParameters: - type: object mapping: $. - name: get-all-rest-api-tokens description: Get all the REST API tokens (active | expired) hints: readOnly: true destructive: false idempotent: true call: fossology-user.gettokensbytype outputParameters: - type: object mapping: $. - name: get-user-id description: Get user by id hints: readOnly: true destructive: false idempotent: true call: fossology-user.getuserbyid outputParameters: - type: object mapping: $. - name: edit-user-details-id description: Edit user details by id hints: readOnly: false destructive: false idempotent: true call: fossology-user.modifyuserbyid with: body: tools.body outputParameters: - type: object mapping: $. - name: delete-user-id description: Delete user by id hints: readOnly: false destructive: true idempotent: true call: fossology-user.deleteuserbyid outputParameters: - type: object mapping: $.