naftiko: 1.0.0-alpha2 info: label: JFrog Artifactory REST API — Security description: 'JFrog Artifactory REST API — Security. 16 operations. Lead operation: JFrog Artifactory Get API Key. Self-contained Naftiko capability covering one Artifactory business surface.' tags: - Artifactory - Security created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: ARTIFACTORY_API_KEY: ARTIFACTORY_API_KEY capability: consumes: - type: http namespace: rest-security baseUri: https://{server}/artifactory description: JFrog Artifactory REST API — Security business capability. Self-contained, no shared references. resources: - name: api-security-apiKey path: /api/security/apiKey operations: - name: getapikey method: GET description: JFrog Artifactory Get API Key outputRawFormat: json outputParameters: - name: result type: object value: $. - name: createapikey method: PUT description: JFrog Artifactory Create API Key outputRawFormat: json outputParameters: - name: result type: object value: $. - name: revokeapikey method: DELETE description: JFrog Artifactory Revoke API Key outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-security-groups path: /api/security/groups operations: - name: listgroups method: GET description: JFrog Artifactory List Groups outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-security-groups-groupName path: /api/security/groups/{groupName} operations: - name: getgroup method: GET description: JFrog Artifactory Get Group Details outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: groupName in: path type: string description: The group name required: true - name: createorreplacegroup method: PUT description: JFrog Artifactory Create or Replace Group outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: groupName in: path type: string description: The group name required: true - name: body in: body type: object description: Request body (JSON). required: true - name: deletegroup method: DELETE description: JFrog Artifactory Delete Group outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: groupName in: path type: string description: The group name required: true - name: api-security-permissions path: /api/security/permissions operations: - name: listpermissiontargets method: GET description: JFrog Artifactory List Permission Targets outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-security-permissions-permissionName path: /api/security/permissions/{permissionName} operations: - name: getpermissiontarget method: GET description: JFrog Artifactory Get Permission Target outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: permissionName in: path type: string description: The permission target name required: true - name: createorreplacepermissiontarget method: PUT description: JFrog Artifactory Create or Replace Permission Target outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: permissionName in: path type: string description: The permission target name required: true - name: body in: body type: object description: Request body (JSON). required: true - name: deletepermissiontarget method: DELETE description: JFrog Artifactory Delete Permission Target outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: permissionName in: path type: string description: The permission target name required: true - name: api-security-token path: /api/security/token operations: - name: createaccesstoken method: POST description: JFrog Artifactory Create Access Token outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: api-security-users path: /api/security/users operations: - name: listusers method: GET description: JFrog Artifactory List Users outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-security-users-username path: /api/security/users/{username} operations: - name: getuser method: GET description: JFrog Artifactory Get User Details outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: username in: path type: string description: The username required: true - name: createorreplaceuser method: PUT description: JFrog Artifactory Create or Replace User outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: username in: path type: string description: The username required: true - name: body in: body type: object description: Request body (JSON). required: true - name: deleteuser method: DELETE description: JFrog Artifactory Delete User outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: username in: path type: string description: The username required: true authentication: type: bearer token: '{{env.ARTIFACTORY_API_KEY}}' exposes: - type: rest namespace: rest-security-rest port: 8080 description: REST adapter for JFrog Artifactory REST API — Security. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/api/security/apikey name: api-security-apikey description: REST surface for api-security-apiKey. operations: - method: GET name: getapikey description: JFrog Artifactory Get API Key call: rest-security.getapikey outputParameters: - type: object mapping: $. - method: PUT name: createapikey description: JFrog Artifactory Create API Key call: rest-security.createapikey outputParameters: - type: object mapping: $. - method: DELETE name: revokeapikey description: JFrog Artifactory Revoke API Key call: rest-security.revokeapikey outputParameters: - type: object mapping: $. - path: /v1/api/security/groups name: api-security-groups description: REST surface for api-security-groups. operations: - method: GET name: listgroups description: JFrog Artifactory List Groups call: rest-security.listgroups outputParameters: - type: object mapping: $. - path: /v1/api/security/groups/{groupname} name: api-security-groups-groupname description: REST surface for api-security-groups-groupName. operations: - method: GET name: getgroup description: JFrog Artifactory Get Group Details call: rest-security.getgroup with: groupName: rest.groupName outputParameters: - type: object mapping: $. - method: PUT name: createorreplacegroup description: JFrog Artifactory Create or Replace Group call: rest-security.createorreplacegroup with: groupName: rest.groupName body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletegroup description: JFrog Artifactory Delete Group call: rest-security.deletegroup with: groupName: rest.groupName outputParameters: - type: object mapping: $. - path: /v1/api/security/permissions name: api-security-permissions description: REST surface for api-security-permissions. operations: - method: GET name: listpermissiontargets description: JFrog Artifactory List Permission Targets call: rest-security.listpermissiontargets outputParameters: - type: object mapping: $. - path: /v1/api/security/permissions/{permissionname} name: api-security-permissions-permissionname description: REST surface for api-security-permissions-permissionName. operations: - method: GET name: getpermissiontarget description: JFrog Artifactory Get Permission Target call: rest-security.getpermissiontarget with: permissionName: rest.permissionName outputParameters: - type: object mapping: $. - method: PUT name: createorreplacepermissiontarget description: JFrog Artifactory Create or Replace Permission Target call: rest-security.createorreplacepermissiontarget with: permissionName: rest.permissionName body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletepermissiontarget description: JFrog Artifactory Delete Permission Target call: rest-security.deletepermissiontarget with: permissionName: rest.permissionName outputParameters: - type: object mapping: $. - path: /v1/api/security/token name: api-security-token description: REST surface for api-security-token. operations: - method: POST name: createaccesstoken description: JFrog Artifactory Create Access Token call: rest-security.createaccesstoken with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/security/users name: api-security-users description: REST surface for api-security-users. operations: - method: GET name: listusers description: JFrog Artifactory List Users call: rest-security.listusers outputParameters: - type: object mapping: $. - path: /v1/api/security/users/{username} name: api-security-users-username description: REST surface for api-security-users-username. operations: - method: GET name: getuser description: JFrog Artifactory Get User Details call: rest-security.getuser with: username: rest.username outputParameters: - type: object mapping: $. - method: PUT name: createorreplaceuser description: JFrog Artifactory Create or Replace User call: rest-security.createorreplaceuser with: username: rest.username body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deleteuser description: JFrog Artifactory Delete User call: rest-security.deleteuser with: username: rest.username outputParameters: - type: object mapping: $. - type: mcp namespace: rest-security-mcp port: 9090 transport: http description: MCP adapter for JFrog Artifactory REST API — Security. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: jfrog-artifactory-get-api-key description: JFrog Artifactory Get API Key hints: readOnly: true destructive: false idempotent: true call: rest-security.getapikey outputParameters: - type: object mapping: $. - name: jfrog-artifactory-create-api-key description: JFrog Artifactory Create API Key hints: readOnly: false destructive: false idempotent: true call: rest-security.createapikey outputParameters: - type: object mapping: $. - name: jfrog-artifactory-revoke-api-key description: JFrog Artifactory Revoke API Key hints: readOnly: false destructive: true idempotent: true call: rest-security.revokeapikey outputParameters: - type: object mapping: $. - name: jfrog-artifactory-list-groups description: JFrog Artifactory List Groups hints: readOnly: true destructive: false idempotent: true call: rest-security.listgroups outputParameters: - type: object mapping: $. - name: jfrog-artifactory-get-group-details description: JFrog Artifactory Get Group Details hints: readOnly: true destructive: false idempotent: true call: rest-security.getgroup with: groupName: tools.groupName outputParameters: - type: object mapping: $. - name: jfrog-artifactory-create-replace-group description: JFrog Artifactory Create or Replace Group hints: readOnly: false destructive: false idempotent: true call: rest-security.createorreplacegroup with: groupName: tools.groupName body: tools.body outputParameters: - type: object mapping: $. - name: jfrog-artifactory-delete-group description: JFrog Artifactory Delete Group hints: readOnly: false destructive: true idempotent: true call: rest-security.deletegroup with: groupName: tools.groupName outputParameters: - type: object mapping: $. - name: jfrog-artifactory-list-permission-targets description: JFrog Artifactory List Permission Targets hints: readOnly: true destructive: false idempotent: true call: rest-security.listpermissiontargets outputParameters: - type: object mapping: $. - name: jfrog-artifactory-get-permission-target description: JFrog Artifactory Get Permission Target hints: readOnly: true destructive: false idempotent: true call: rest-security.getpermissiontarget with: permissionName: tools.permissionName outputParameters: - type: object mapping: $. - name: jfrog-artifactory-create-replace-permission description: JFrog Artifactory Create or Replace Permission Target hints: readOnly: false destructive: false idempotent: true call: rest-security.createorreplacepermissiontarget with: permissionName: tools.permissionName body: tools.body outputParameters: - type: object mapping: $. - name: jfrog-artifactory-delete-permission-target description: JFrog Artifactory Delete Permission Target hints: readOnly: false destructive: true idempotent: true call: rest-security.deletepermissiontarget with: permissionName: tools.permissionName outputParameters: - type: object mapping: $. - name: jfrog-artifactory-create-access-token description: JFrog Artifactory Create Access Token hints: readOnly: false destructive: false idempotent: false call: rest-security.createaccesstoken with: body: tools.body outputParameters: - type: object mapping: $. - name: jfrog-artifactory-list-users description: JFrog Artifactory List Users hints: readOnly: true destructive: false idempotent: true call: rest-security.listusers outputParameters: - type: object mapping: $. - name: jfrog-artifactory-get-user-details description: JFrog Artifactory Get User Details hints: readOnly: true destructive: false idempotent: true call: rest-security.getuser with: username: tools.username outputParameters: - type: object mapping: $. - name: jfrog-artifactory-create-replace-user description: JFrog Artifactory Create or Replace User hints: readOnly: false destructive: false idempotent: true call: rest-security.createorreplaceuser with: username: tools.username body: tools.body outputParameters: - type: object mapping: $. - name: jfrog-artifactory-delete-user description: JFrog Artifactory Delete User hints: readOnly: false destructive: true idempotent: true call: rest-security.deleteuser with: username: tools.username outputParameters: - type: object mapping: $.