FOSSology · Capability

FOSSology API — Job

FOSSology API — Job. 12 operations. Lead operation: Gets all jobs created by the logged in user. Self-contained Naftiko capability covering one Fossology business surface.

Run with Naftiko FossologyJob

What You Can Do

GET
Getjobs — Gets all jobs created by the logged in user
/v1/jobs
POST
Startjobs — Schedule an Analysis
/v1/jobs
GET
Getalljobs — Gets all jobs created by all users
/v1/jobs/all
GET
Getallserverjobs — Gets all jobs server jobs with scheduler status
/v1/jobs/dashboard
GET
Getjobstatistics — Get the statistics of all the jobs
/v1/jobs/dashboard/statistics
GET
Getjobshistoryperupload — Get the history of all the jobs queued based on an upload
/v1/jobs/history
POST
Handleschedulerrun — Run the scheduler
/v1/jobs/scheduler/operation/run
GET
Getscheduleroptionsbyoperation — get scheduler options by operation
/v1/jobs/scheduler/operation/{operationname}
GET
Getjobbyid — Gets single job by id
/v1/jobs/{id}
DELETE
Deletejob — Deletes a job using its Id and Queue
/v1/jobs/{id}/{queue}
GET
Getreportsbyupload — Get the reports for a given upload
/v1/report
GET
Getreportbyid — Download the report
/v1/report/{id}

MCP Tools

gets-all-jobs-created-logged

Gets all jobs created by the logged in user

read-only idempotent
schedule-analysis

Schedule an Analysis

gets-all-jobs-created-all

Gets all jobs created by all users

read-only idempotent
gets-all-jobs-server-jobs

Gets all jobs server jobs with scheduler status

read-only idempotent
get-statistics-all-jobs

Get the statistics of all the jobs

read-only idempotent
get-history-all-jobs-queued

Get the history of all the jobs queued based on an upload

read-only idempotent
run-scheduler

Run the scheduler

get-scheduler-options-operation

get scheduler options by operation

read-only idempotent
gets-single-job-id

Gets single job by id

read-only idempotent
deletes-job-using-its-id

Deletes a job using its Id and Queue

idempotent
get-reports-given-upload

Get the reports for a given upload

read-only idempotent
download-report

Download the report

read-only idempotent

Capability Spec

fossology-job.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: FOSSology API — Job
  description: 'FOSSology API — Job. 12 operations. Lead operation: Gets all jobs created by the logged in user. Self-contained
    Naftiko capability covering one Fossology business surface.'
  tags:
  - Fossology
  - Job
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    FOSSOLOGY_API_KEY: FOSSOLOGY_API_KEY
capability:
  consumes:
  - type: http
    namespace: fossology-job
    baseUri: http://localhost/repo/api/v1
    description: FOSSology API — Job business capability. Self-contained, no shared references.
    resources:
    - name: jobs
      path: /jobs
      operations:
      - name: getjobs
        method: GET
        description: Gets all jobs created by the logged in user
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: limit
          in: header
          type: integer
        - name: page
          in: header
          type: integer
        - name: sort
          in: query
          type: string
        - name: status
          in: query
          type: string
          description: Returns only jobs with the selected status.
        - name: upload
          in: query
          type: integer
          description: Return jobs for the given upload id only
      - name: startjobs
        method: POST
        description: Schedule an Analysis
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: folderId
          in: header
          type: integer
          required: true
        - name: uploadId
          in: header
          type: integer
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: jobs-all
      path: /jobs/all
      operations:
      - name: getalljobs
        method: GET
        description: Gets all jobs created by all users
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: limit
          in: header
          type: integer
        - name: page
          in: header
          type: integer
        - name: status
          in: query
          type: string
          description: Returns only jobs with the selected status.
        - name: sort
          in: query
          type: string
    - name: jobs-dashboard
      path: /jobs/dashboard
      operations:
      - name: getallserverjobs
        method: GET
        description: Gets all jobs server jobs with scheduler status
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: jobs-dashboard-statistics
      path: /jobs/dashboard/statistics
      operations:
      - name: getjobstatistics
        method: GET
        description: Get the statistics of all the jobs
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: jobs-history
      path: /jobs/history
      operations:
      - name: getjobshistoryperupload
        method: GET
        description: Get the history of all the jobs queued based on an upload
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - 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: jobs-id
      path: /jobs/{id}
      operations:
      - name: getjobbyid
        method: GET
        description: Gets single job by id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: jobs-id-queue
      path: /jobs/{id}/{queue}
      operations:
      - name: deletejob
        method: DELETE
        description: Deletes a job using its Id and Queue
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: report
      path: /report
      operations:
      - name: getreportsbyupload
        method: GET
        description: Get the reports for a given upload
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: uploadId
          in: header
          type: integer
          description: Id of the upload to generate the report for
          required: true
        - name: reportFormat
          in: header
          type: string
          description: Which report to be genereated
          required: true
        - name: groupName
          in: header
          type: string
          description: The group name to chose while generating a report
    - name: report-id
      path: /report/{id}
      operations:
      - name: getreportbyid
        method: GET
        description: Download the report
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    authentication:
      type: bearer
      token: '{{env.FOSSOLOGY_API_KEY}}'
  exposes:
  - type: rest
    namespace: fossology-job-rest
    port: 8080
    description: REST adapter for FOSSology API — Job. One Spectral-compliant resource per consumed operation, prefixed with
      /v1.
    resources:
    - path: /v1/jobs
      name: jobs
      description: REST surface for jobs.
      operations:
      - method: GET
        name: getjobs
        description: Gets all jobs created by the logged in user
        call: fossology-job.getjobs
        with:
          limit: rest.limit
          page: rest.page
          sort: rest.sort
          status: rest.status
          upload: rest.upload
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: startjobs
        description: Schedule an Analysis
        call: fossology-job.startjobs
        with:
          folderId: rest.folderId
          uploadId: rest.uploadId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/jobs/all
      name: jobs-all
      description: REST surface for jobs-all.
      operations:
      - method: GET
        name: getalljobs
        description: Gets all jobs created by all users
        call: fossology-job.getalljobs
        with:
          limit: rest.limit
          page: rest.page
          status: rest.status
          sort: rest.sort
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/jobs/dashboard
      name: jobs-dashboard
      description: REST surface for jobs-dashboard.
      operations:
      - method: GET
        name: getallserverjobs
        description: Gets all jobs server jobs with scheduler status
        call: fossology-job.getallserverjobs
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/jobs/dashboard/statistics
      name: jobs-dashboard-statistics
      description: REST surface for jobs-dashboard-statistics.
      operations:
      - method: GET
        name: getjobstatistics
        description: Get the statistics of all the jobs
        call: fossology-job.getjobstatistics
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/jobs/history
      name: jobs-history
      description: REST surface for jobs-history.
      operations:
      - method: GET
        name: getjobshistoryperupload
        description: Get the history of all the jobs queued based on an upload
        call: fossology-job.getjobshistoryperupload
        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-job.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-job.getscheduleroptionsbyoperation
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/jobs/{id}
      name: jobs-id
      description: REST surface for jobs-id.
      operations:
      - method: GET
        name: getjobbyid
        description: Gets single job by id
        call: fossology-job.getjobbyid
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/jobs/{id}/{queue}
      name: jobs-id-queue
      description: REST surface for jobs-id-queue.
      operations:
      - method: DELETE
        name: deletejob
        description: Deletes a job using its Id and Queue
        call: fossology-job.deletejob
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/report
      name: report
      description: REST surface for report.
      operations:
      - method: GET
        name: getreportsbyupload
        description: Get the reports for a given upload
        call: fossology-job.getreportsbyupload
        with:
          uploadId: rest.uploadId
          reportFormat: rest.reportFormat
          groupName: rest.groupName
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/report/{id}
      name: report-id
      description: REST surface for report-id.
      operations:
      - method: GET
        name: getreportbyid
        description: Download the report
        call: fossology-job.getreportbyid
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: fossology-job-mcp
    port: 9090
    transport: http
    description: MCP adapter for FOSSology API — Job. One tool per consumed operation, routed inline through this capability's
      consumes block.
    tools:
    - name: gets-all-jobs-created-logged
      description: Gets all jobs created by the logged in user
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: fossology-job.getjobs
      with:
        limit: tools.limit
        page: tools.page
        sort: tools.sort
        status: tools.status
        upload: tools.upload
      outputParameters:
      - type: object
        mapping: $.
    - name: schedule-analysis
      description: Schedule an Analysis
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: fossology-job.startjobs
      with:
        folderId: tools.folderId
        uploadId: tools.uploadId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: gets-all-jobs-created-all
      description: Gets all jobs created by all users
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: fossology-job.getalljobs
      with:
        limit: tools.limit
        page: tools.page
        status: tools.status
        sort: tools.sort
      outputParameters:
      - type: object
        mapping: $.
    - name: gets-all-jobs-server-jobs
      description: Gets all jobs server jobs with scheduler status
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: fossology-job.getallserverjobs
      outputParameters:
      - type: object
        mapping: $.
    - name: get-statistics-all-jobs
      description: Get the statistics of all the jobs
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: fossology-job.getjobstatistics
      outputParameters:
      - type: object
        mapping: $.
    - name: get-history-all-jobs-queued
      description: Get the history of all the jobs queued based on an upload
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: fossology-job.getjobshistoryperupload
      outputParameters:
      - type: object
        mapping: $.
    - name: run-scheduler
      description: Run the scheduler
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: fossology-job.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-job.getscheduleroptionsbyoperation
      outputParameters:
      - type: object
        mapping: $.
    - name: gets-single-job-id
      description: Gets single job by id
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: fossology-job.getjobbyid
      outputParameters:
      - type: object
        mapping: $.
    - name: deletes-job-using-its-id
      description: Deletes a job using its Id and Queue
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: fossology-job.deletejob
      outputParameters:
      - type: object
        mapping: $.
    - name: get-reports-given-upload
      description: Get the reports for a given upload
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: fossology-job.getreportsbyupload
      with:
        uploadId: tools.uploadId
        reportFormat: tools.reportFormat
        groupName: tools.groupName
      outputParameters:
      - type: object
        mapping: $.
    - name: download-report
      description: Download the report
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: fossology-job.getreportbyid
      outputParameters:
      - type: object
        mapping: $.