naftiko: 1.0.0-alpha2 info: label: FOSSology API — Admin description: 'FOSSology API — Admin. 28 operations. Lead operation: Get the Admin configuration data. Self-contained Naftiko capability covering one Fossology business surface.' tags: - Fossology - Admin created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: FOSSOLOGY_API_KEY: FOSSOLOGY_API_KEY capability: consumes: - type: http namespace: fossology-admin baseUri: http://localhost/repo/api/v1 description: FOSSology API — Admin business capability. Self-contained, no shared references. resources: - name: customise path: /customise operations: - name: getcustomisedata method: GET description: Get the Admin configuration data outputRawFormat: json outputParameters: - name: result type: object value: $. - name: updatecustomisedata method: PUT description: Update the Admin configuration data outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: folders path: /folders operations: - name: createfolder method: POST description: Create a new folder outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: parentFolder in: header type: integer description: Parent folder for the new folder required: true - name: folderName in: header type: string description: Name of the new folder required: true - name: folderDescription in: header type: string description: Description of the new folder - name: folders-id path: /folders/{id} operations: - name: deletefolderbyid method: DELETE description: Delete a folder outputRawFormat: json outputParameters: - name: result type: object value: $. - name: groups path: /groups operations: - name: creategroup method: POST description: Create a new group outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: header type: string description: Name of the new group required: true - name: groups-id-user-userId path: /groups/{id}/user/{userId} operations: - name: addmember method: POST description: Add user to a group outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: jobs-scheduler-operation-run path: /jobs/scheduler/operation/run operations: - name: handleschedulerrun method: POST description: Run the scheduler outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: jobs-scheduler-operation-operationName path: /jobs/scheduler/operation/{operationName} operations: - name: getscheduleroptionsbyoperation method: GET description: get scheduler options by operation outputRawFormat: json outputParameters: - name: result type: object value: $. - name: license-admincandidates-id path: /license/admincandidates/{id} operations: - name: deletebylicensecandidateid method: DELETE description: Delete license candidate by id. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: license-merge-shortname path: /license/merge/{shortname} operations: - name: mergelicense method: PUT description: Merge a license with another outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: license-suggest path: /license/suggest operations: - name: getsuggestedlicense method: POST description: Get suggested license by reference text. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: license-verify-shortname path: /license/verify/{shortname} operations: - name: verifylicense method: PUT description: Verify a license as new or variant outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: obligations path: /obligations operations: - name: getallobligationsdata method: GET description: Get details of a all obligations outputRawFormat: json outputParameters: - name: result type: object value: $. - name: obligations-list path: /obligations/list operations: - name: getobligationslist method: GET description: Get the list of obligations outputRawFormat: json outputParameters: - name: result type: object value: $. - name: obligations-id path: /obligations/{id} operations: - name: getobligationsdata method: GET description: Get details of a particular obligation outputRawFormat: json outputParameters: - name: result type: object value: $. - name: deleteobligationsdata method: DELETE description: Delete a particular obligation outputRawFormat: json outputParameters: - name: result type: object value: $. - name: overview-database-contents path: /overview/database/contents operations: - name: getdatabasecontents method: GET description: Get database contents outputRawFormat: json outputParameters: - name: result type: object value: $. - name: overview-database-metrics path: /overview/database/metrics operations: - name: getdatabasemetrics method: GET description: Get database metrics outputRawFormat: json outputParameters: - name: result type: object value: $. - name: overview-disk-usage path: /overview/disk/usage operations: - name: getdiskusage method: GET description: Get disk usage outputRawFormat: json outputParameters: - name: result type: object value: $. - name: overview-info-php path: /overview/info/php operations: - name: getphpinfo method: GET description: Get PHP info outputRawFormat: json outputParameters: - name: result type: object value: $. - name: overview-queries-active path: /overview/queries/active operations: - name: getactivequeries method: GET description: Get active queries outputRawFormat: json outputParameters: - name: result type: object value: $. - 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-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-admin-rest port: 8080 description: REST adapter for FOSSology API — Admin. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/customise name: customise description: REST surface for customise. operations: - method: GET name: getcustomisedata description: Get the Admin configuration data call: fossology-admin.getcustomisedata outputParameters: - type: object mapping: $. - method: PUT name: updatecustomisedata description: Update the Admin configuration data call: fossology-admin.updatecustomisedata with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/folders name: folders description: REST surface for folders. operations: - method: POST name: createfolder description: Create a new folder call: fossology-admin.createfolder with: parentFolder: rest.parentFolder folderName: rest.folderName folderDescription: rest.folderDescription outputParameters: - type: object mapping: $. - path: /v1/folders/{id} name: folders-id description: REST surface for folders-id. operations: - method: DELETE name: deletefolderbyid description: Delete a folder call: fossology-admin.deletefolderbyid outputParameters: - type: object mapping: $. - path: /v1/groups name: groups description: REST surface for groups. operations: - method: POST name: creategroup description: Create a new group call: fossology-admin.creategroup with: name: rest.name outputParameters: - type: object mapping: $. - path: /v1/groups/{id}/user/{userid} name: groups-id-user-userid description: REST surface for groups-id-user-userId. operations: - method: POST name: addmember description: Add user to a group call: fossology-admin.addmember with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/jobs/scheduler/operation/run name: jobs-scheduler-operation-run description: REST surface for jobs-scheduler-operation-run. operations: - method: POST name: handleschedulerrun description: Run the scheduler call: fossology-admin.handleschedulerrun with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/jobs/scheduler/operation/{operationname} name: jobs-scheduler-operation-operationname description: REST surface for jobs-scheduler-operation-operationName. operations: - method: GET name: getscheduleroptionsbyoperation description: get scheduler options by operation call: fossology-admin.getscheduleroptionsbyoperation outputParameters: - type: object mapping: $. - path: /v1/license/admincandidates/{id} name: license-admincandidates-id description: REST surface for license-admincandidates-id. operations: - method: DELETE name: deletebylicensecandidateid description: Delete license candidate by id. call: fossology-admin.deletebylicensecandidateid outputParameters: - type: object mapping: $. - path: /v1/license/merge/{shortname} name: license-merge-shortname description: REST surface for license-merge-shortname. operations: - method: PUT name: mergelicense description: Merge a license with another call: fossology-admin.mergelicense with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/license/suggest name: license-suggest description: REST surface for license-suggest. operations: - method: POST name: getsuggestedlicense description: Get suggested license by reference text. call: fossology-admin.getsuggestedlicense with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/license/verify/{shortname} name: license-verify-shortname description: REST surface for license-verify-shortname. operations: - method: PUT name: verifylicense description: Verify a license as new or variant call: fossology-admin.verifylicense with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/obligations name: obligations description: REST surface for obligations. operations: - method: GET name: getallobligationsdata description: Get details of a all obligations call: fossology-admin.getallobligationsdata outputParameters: - type: object mapping: $. - path: /v1/obligations/list name: obligations-list description: REST surface for obligations-list. operations: - method: GET name: getobligationslist description: Get the list of obligations call: fossology-admin.getobligationslist outputParameters: - type: object mapping: $. - path: /v1/obligations/{id} name: obligations-id description: REST surface for obligations-id. operations: - method: GET name: getobligationsdata description: Get details of a particular obligation call: fossology-admin.getobligationsdata outputParameters: - type: object mapping: $. - method: DELETE name: deleteobligationsdata description: Delete a particular obligation call: fossology-admin.deleteobligationsdata outputParameters: - type: object mapping: $. - path: /v1/overview/database/contents name: overview-database-contents description: REST surface for overview-database-contents. operations: - method: GET name: getdatabasecontents description: Get database contents call: fossology-admin.getdatabasecontents outputParameters: - type: object mapping: $. - path: /v1/overview/database/metrics name: overview-database-metrics description: REST surface for overview-database-metrics. operations: - method: GET name: getdatabasemetrics description: Get database metrics call: fossology-admin.getdatabasemetrics outputParameters: - type: object mapping: $. - path: /v1/overview/disk/usage name: overview-disk-usage description: REST surface for overview-disk-usage. operations: - method: GET name: getdiskusage description: Get disk usage call: fossology-admin.getdiskusage outputParameters: - type: object mapping: $. - path: /v1/overview/info/php name: overview-info-php description: REST surface for overview-info-php. operations: - method: GET name: getphpinfo description: Get PHP info call: fossology-admin.getphpinfo outputParameters: - type: object mapping: $. - path: /v1/overview/queries/active name: overview-queries-active description: REST surface for overview-queries-active. operations: - method: GET name: getactivequeries description: Get active queries call: fossology-admin.getactivequeries 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-admin.createuser with: body: rest.body outputParameters: - type: object mapping: $. - method: GET name: getusers description: Get the registered users call: fossology-admin.getusers 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-admin.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-admin.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-admin.getuserbyid outputParameters: - type: object mapping: $. - method: PUT name: modifyuserbyid description: Edit user details by id call: fossology-admin.modifyuserbyid with: body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deleteuserbyid description: Delete user by id call: fossology-admin.deleteuserbyid outputParameters: - type: object mapping: $. - type: mcp namespace: fossology-admin-mcp port: 9090 transport: http description: MCP adapter for FOSSology API — Admin. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-admin-configuration-data description: Get the Admin configuration data hints: readOnly: true destructive: false idempotent: true call: fossology-admin.getcustomisedata outputParameters: - type: object mapping: $. - name: update-admin-configuration-data description: Update the Admin configuration data hints: readOnly: false destructive: false idempotent: true call: fossology-admin.updatecustomisedata with: body: tools.body outputParameters: - type: object mapping: $. - name: create-new-folder description: Create a new folder hints: readOnly: false destructive: false idempotent: false call: fossology-admin.createfolder with: parentFolder: tools.parentFolder folderName: tools.folderName folderDescription: tools.folderDescription outputParameters: - type: object mapping: $. - name: delete-folder description: Delete a folder hints: readOnly: false destructive: true idempotent: true call: fossology-admin.deletefolderbyid outputParameters: - type: object mapping: $. - name: create-new-group description: Create a new group hints: readOnly: false destructive: false idempotent: false call: fossology-admin.creategroup with: name: tools.name outputParameters: - type: object mapping: $. - name: add-user-group description: Add user to a group hints: readOnly: false destructive: false idempotent: false call: fossology-admin.addmember with: body: tools.body outputParameters: - type: object mapping: $. - name: run-scheduler description: Run the scheduler hints: readOnly: false destructive: false idempotent: false call: fossology-admin.handleschedulerrun with: body: tools.body outputParameters: - type: object mapping: $. - name: get-scheduler-options-operation description: get scheduler options by operation hints: readOnly: true destructive: false idempotent: true call: fossology-admin.getscheduleroptionsbyoperation outputParameters: - type: object mapping: $. - name: delete-license-candidate-id description: Delete license candidate by id. hints: readOnly: false destructive: true idempotent: true call: fossology-admin.deletebylicensecandidateid outputParameters: - type: object mapping: $. - name: merge-license-another description: Merge a license with another hints: readOnly: false destructive: false idempotent: true call: fossology-admin.mergelicense with: body: tools.body outputParameters: - type: object mapping: $. - name: get-suggested-license-reference-text description: Get suggested license by reference text. hints: readOnly: true destructive: false idempotent: false call: fossology-admin.getsuggestedlicense with: body: tools.body outputParameters: - type: object mapping: $. - name: verify-license-new-variant description: Verify a license as new or variant hints: readOnly: false destructive: false idempotent: true call: fossology-admin.verifylicense with: body: tools.body outputParameters: - type: object mapping: $. - name: get-details-all-obligations description: Get details of a all obligations hints: readOnly: true destructive: false idempotent: true call: fossology-admin.getallobligationsdata outputParameters: - type: object mapping: $. - name: get-list-obligations description: Get the list of obligations hints: readOnly: true destructive: false idempotent: true call: fossology-admin.getobligationslist outputParameters: - type: object mapping: $. - name: get-details-particular-obligation description: Get details of a particular obligation hints: readOnly: true destructive: false idempotent: true call: fossology-admin.getobligationsdata outputParameters: - type: object mapping: $. - name: delete-particular-obligation description: Delete a particular obligation hints: readOnly: false destructive: true idempotent: true call: fossology-admin.deleteobligationsdata outputParameters: - type: object mapping: $. - name: get-database-contents description: Get database contents hints: readOnly: true destructive: false idempotent: true call: fossology-admin.getdatabasecontents outputParameters: - type: object mapping: $. - name: get-database-metrics description: Get database metrics hints: readOnly: true destructive: false idempotent: true call: fossology-admin.getdatabasemetrics outputParameters: - type: object mapping: $. - name: get-disk-usage description: Get disk usage hints: readOnly: true destructive: false idempotent: true call: fossology-admin.getdiskusage outputParameters: - type: object mapping: $. - name: get-php-info description: Get PHP info hints: readOnly: true destructive: false idempotent: true call: fossology-admin.getphpinfo outputParameters: - type: object mapping: $. - name: get-active-queries description: Get active queries hints: readOnly: true destructive: false idempotent: true call: fossology-admin.getactivequeries outputParameters: - type: object mapping: $. - name: create-new-user description: Create a new user hints: readOnly: false destructive: false idempotent: false call: fossology-admin.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-admin.getusers 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-admin.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-admin.gettokensbytype outputParameters: - type: object mapping: $. - name: get-user-id description: Get user by id hints: readOnly: true destructive: false idempotent: true call: fossology-admin.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-admin.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-admin.deleteuserbyid outputParameters: - type: object mapping: $.