Skip to main content

Component Claim REST API

Note

Note that the IQ Server's UI currently only supports claiming components in the maven format. As such, viewing, adding, updating, and removing component claims in formats other than maven is currently only supported via this API.

GET a Component Claim by Component Hash

To get a component's claim, you can issue a GET request to the following path

GET /api/v2/claim/components/{componentHash}

where componentHash is the SHA1 hash of the component.

Below is an example request

curl -u admin:admin123 http://localhost:8070/api/v2/claim/components/4632184fe1d932764efe

If a component claim does not exist for the given component hash, then the request yields HTTP status code 404. Otherwise, a JSON response will be returned with the following properties

Property

Description

hash

The truncated SHA1 hash of the component.

comment

The comment left (if any) when claiming the component.

createTime

The date and time when the component was created/published, defining the age of the component.

Note that this timestamp is not to be confused with the moment when the component claim was made.

componentIdentifier

The format and coordinates for the claimed component.

packageUrl

The package URL for the claimed component.

The following is an example successful response

{
    "hash": "4632184fe1d932764efe",
    "comment": "c1",
    "createTime": "2020-02-14T00:00:00.000Z",
    "componentIdentifier": {
        "format": "maven",
        "coordinates": {
            "artifactId": "a",
            "classifier": "c",
            "extension": "e",
            "groupId": "g",
            "version": "v"
        }
    },
    "packageUrl": "pkg:maven/g/a@v?classifier=c&type=e"
}

GET all Component Claims

To get all component claims, a Policy Administrator can issue a GET request to the following path

GET /api/v2/claim/components

Below is an example request

curl -u admin:admin123 http://localhost:8070/api/v2/claim/components

The following is an example successful response

{
    "componentClaims": [
        {
            "hash": "4632184fe1d932764efe",
            "comment": "c1",
            "createTime": "2020-02-14T00:00:00.000Z",
            "componentIdentifier": {
                "format": "maven",
                "coordinates": {
                    "artifactId": "a",
                    "classifier": "c",
                    "extension": "e",
                    "groupId": "g",
                    "version": "v"
                }
            },
            "packageUrl": "pkg:maven/g/a@v?classifier=c&type=e"
        },
        {
            "hash": "6d0684d8acf85cd6e7f2",
            "comment": "c2",
            "createTime": "2020-01-09T15:01:10.000Z",
            "componentIdentifier": {
                "format": "a-name",
                "coordinates": {
                    "name": "n",
                    "qualifier": "q",
                    "version": "v"
                }
            },
            "packageUrl": "pkg:a-name/n@v?qualifier=q"
        }
    ]
}

POST/Add/Update a Component Claim

To add or update a component claim, a Policy Administrator can issue a POST request to the following path

POST /api/v2/claim/components

The request requires a JSON body/payload, using the same properties described above, and must include at least a hash (of the component being claimed) and a valid componentIdentifier / packageUrl.

Below is an example request

curl -u admin:admin123 -X POST -H "Content-Type: application/json" -d '{"hash":"a4d45b211072d89c0e54","comment":"c3","createTime":"2020-01-09T15:01:10.000Z","componentIdentifier":{"format":"npm","coordinates":{"packageId":"p","version":"v"}}}' http://localhost:8070/api/v2/claim/components

The following is an example successful response

{
    "hash": "a4d45b211072d89c0e54",
    "comment": "c3",
    "createTime": "2020-01-09T15:01:10.000Z",
    "componentIdentifier": {
        "format": "npm",
        "coordinates": {
            "packageId": "p",
            "version": "v"
        }
    },
    "packageUrl": "pkg:npm/p@v"
}

DELETE a Component Claim by Component Hash

To delete a component claim, you can issue a DELETE request to the following path

DELETE /api/v2/claim/components/{componentHash}

where componentHash is the SHA1 hash of the component. If a component claim does not exist for the given component hash, then the request yields HTTP status code 404.

Below is an example request

curl -X DELETE -u admin:admin123 http://localhost:8070/api/v2/claim/components/6d0684d8acf85cd6e7f2