Key Value API
1
4fbf02fc-0329-4291-aac3-0143969167c4
Promise API
2
4fbf02fc-0329-4291-aac3-0143969167c4
Worker API
8
fc0b5887-cca5-4261-b6b7-73711f6f23b0
Token API
7
fc0b5887-cca5-4261-b6b7-73711f6f23b0
Template API
6
fc0b5887-cca5-4261-b6b7-73711f6f23b0
Project policy API
5
fc0b5887-cca5-4261-b6b7-73711f6f23b0
Project grant API
4
fc0b5887-cca5-4261-b6b7-73711f6f23b0
Project API
3
fc0b5887-cca5-4261-b6b7-73711f6f23b0
Login API
2
fc0b5887-cca5-4261-b6b7-73711f6f23b0
Account API
1
fc0b5887-cca5-4261-b6b7-73711f6f23b0
Breaking changes August 2023
1
726cfb0b-bffe-41ba-98b4-94069569ec3c
Overview
0
726cfb0b-bffe-41ba-98b4-94069569ec3c
Tier 4 languages
4
03501aa5-572b-4129-aa0a-9e9fe9f5d3fc
Python
4
54bda586-0bf3-430e-93e5-6d8c578372bd
Overview
0
ac8f610e-7e8f-465d-9e32-4b6ae0aba3b5
Overview
0
0f58ad57-8cb7-4a64-8aed-c7bea90c37f9
Overview
0
03501aa5-572b-4129-aa0a-9e9fe9f5d3fc
Overview
0
54bda586-0bf3-430e-93e5-6d8c578372bd
Overview
0
9b92ca64-009f-47e8-9457-b544f786d8af
Quickstart
2
1d167981-dd90-40ab-8023-3b2013ceb5c5
Overview
0
1aa11fd4-1dcf-4c87-8b46-5c15ca815d61
Overview
0
4fbf02fc-0329-4291-aac3-0143969167c4
Overview
0
d0be080a-56f4-481a-91d3-ba7d30c144f4
Common tooling
1
03501aa5-572b-4129-aa0a-9e9fe9f5d3fc
C
3
54bda586-0bf3-430e-93e5-6d8c578372bd
Go
2
54bda586-0bf3-430e-93e5-6d8c578372bd
Grain
3
9b92ca64-009f-47e8-9457-b544f786d8af
Swift
1
9b92ca64-009f-47e8-9457-b544f786d8af
C#
3
9b92ca64-009f-47e8-9457-b544f786d8af
Zig
2
9b92ca64-009f-47e8-9457-b544f786d8af
Rust
1
54bda586-0bf3-430e-93e5-6d8c578372bd
Overview
0
fc0b5887-cca5-4261-b6b7-73711f6f23b0
Overview
0
62133a19-c114-4a29-a74b-f986d118e157
Why Golem?
1
1d167981-dd90-40ab-8023-3b2013ceb5c5
Overview
0
1d167981-dd90-40ab-8023-3b2013ceb5c5
API Gateway
308adf1f-525e-460e-81c9-6ea00d1dbca4
d0be080a-56f4-481a-91d3-ba7d30c144f4
4
Release notes
726cfb0b-bffe-41ba-98b4-94069569ec3c
d0be080a-56f4-481a-91d3-ba7d30c144f4
9
Component interface
ac8f610e-7e8f-465d-9e32-4b6ae0aba3b5
d0be080a-56f4-481a-91d3-ba7d30c144f4
7
Getting Started
1d167981-dd90-40ab-8023-3b2013ceb5c5
d0be080a-56f4-481a-91d3-ba7d30c144f4
1
Building Components
03501aa5-572b-4129-aa0a-9e9fe9f5d3fc
d0be080a-56f4-481a-91d3-ba7d30c144f4
2
Tier 2 languages
54bda586-0bf3-430e-93e5-6d8c578372bd
03501aa5-572b-4129-aa0a-9e9fe9f5d3fc
2
Promises
62133a19-c114-4a29-a74b-f986d118e157
d0be080a-56f4-481a-91d3-ba7d30c144f4
3
Tier 3 languages
9b92ca64-009f-47e8-9457-b544f786d8af
03501aa5-572b-4129-aa0a-9e9fe9f5d3fc
3
Golem CLI
1aa11fd4-1dcf-4c87-8b46-5c15ca815d61
d0be080a-56f4-481a-91d3-ba7d30c144f4
4
REST API
fc0b5887-cca5-4261-b6b7-73711f6f23b0
d0be080a-56f4-481a-91d3-ba7d30c144f4
5
Runtime API
4fbf02fc-0329-4291-aac3-0143969167c4
d0be080a-56f4-481a-91d3-ba7d30c144f4
6
FAQ
0f58ad57-8cb7-4a64-8aed-c7bea90c37f9
d0be080a-56f4-481a-91d3-ba7d30c144f4
7

Project grant API

fc0b5887-cca5-4261-b6b7-73711f6f23b0

Project grant API

Summary

Projects can have grants providing access to other accounts than the project’s owner. The project grant API allows listing, creating and deleting such grants. What the grants allow exactly are defined by policies, covered by the Project policy API.

Get a project’s grants

MethodPathRequestResponse
GET/v1/projects/{project-id}/grants-Array of ProjectGrant JSON

Response format:

[

{

"id": "2b21e703-cd02-4873-bb6b-e1caa3c2961f",

"data": {

"granteeAccountId": "ae9b9f24-cfba-4dc6-92c6-c6fecdee88b5",

"grantorProjectId": "866e1f4a-cf1a-40aa-ad8f-77e33294e999",

"projectPolicyId": "2b41858e-a327-4e63-9539-ff9b123c88a2",

}

},

...

]

Explanation

Returns all projects grants associated with the given project. For each grant:

  • id is the identifier of the grant itself
  • granteeAccountId the account that gets access for the project
  • grantorProjectId the project ID
  • projectPolicyId the associated policy - see the project policy API below

Example cURL:

curl 'https://release.api.golem.cloud/v1/projects/866e1f4a-cf1a-40aa-ad8f-77e33294e999/grants'

-H 'Authorization: Bearer 03f17466-202f-43ac-86cc-52e6c6a42d2d'

Get a specific grant of a project

MethodPathRequestResponse
GET/v1/projects/{project-id}/grants/{grant-id}-ProjectGrant JSON

Response format:

{

"id": "2b21e703-cd02-4873-bb6b-e1caa3c2961f",

"data": {

"granteeAccountId": "ae9b9f24-cfba-4dc6-92c6-c6fecdee88b5",

"grantorProjectId": "866e1f4a-cf1a-40aa-ad8f-77e33294e999",

"projectPolicyId": "2b41858e-a327-4e63-9539-ff9b123c88a2",

}

}

Explanation

Returns a specific grant of a specific project. The returned object is the same as the elements of the grants endpoint’s response described above.

Example cURL:

curl 'https://release.api.golem.cloud/v1/projects/866e1f4a-cf1a-40aa-ad8f-77e33294e999/grants/2b21e703-cd02-4873-bb6b-e1caa3c2961f'

-H 'Authorization: Bearer 03f17466-202f-43ac-86cc-52e6c6a42d2d'

Create a project grant

MethodPathRequestResponse
POST/v1/projects/{project-id}/grantsProjectGrantDataRequest JSONProjectGrant JSON

Request format:

{

"granteeAccountId": "ae9b9f24-cfba-4dc6-92c6-c6fecdee88b5",

"projectPolicyId": "2b41858e-a327-4e63-9539-ff9b123c88a2",

}

Response format:

{

"id": "2b21e703-cd02-4873-bb6b-e1caa3c2961f",

"data": {

"granteeAccountId": "ae9b9f24-cfba-4dc6-92c6-c6fecdee88b5",

"grantorProjectId": "866e1f4a-cf1a-40aa-ad8f-77e33294e999",

"projectPolicyId": "2b41858e-a327-4e63-9539-ff9b123c88a2",

}

}

Explanation

Creates a new project grant from the following information:

  • granteeAccountId the account that gets access for the project
  • projectPolicyId the associated policy - see the project policy API below

The response describes the new project grant including it’s id that can be used to query specifically this grant in the future.

Example cURL:

curl -X POST

'https://release.api.golem.cloud/v1/projects/866e1f4a-cf1a-40aa-ad8f-77e33294e999/grants'

-H 'Content-Type: application/json'

-d '{"granteeAccountId": "ae9b9f24-cfba-4dc6-92c6-c6fecdee88b5", "projectPolicyId": "2b41858e-a327-4e63-9539-ff9b123c88a2"}'

-H 'Authorization: Bearer 03f17466-202f-43ac-86cc-52e6c6a42d2d'

Create a project grant with a new policy

MethodPathRequestResponse
POST/v1/projects/{project-id}/grantsProjectGrantDataWithProjectActions JSONProjectGrant JSON

Request format:

{

"granteeAccountId": "ae9b9f24-cfba-4dc6-92c6-c6fecdee88b5",

"projectActions": ["ViewComponent", "ViewInstance"],

"projectPolicyName": "my new policy"

}

Response format:

{

"id": "2b21e703-cd02-4873-bb6b-e1caa3c2961f",

"data": {

"granteeAccountId": "ae9b9f24-cfba-4dc6-92c6-c6fecdee88b5",

"grantorProjectId": "866e1f4a-cf1a-40aa-ad8f-77e33294e999",

"projectPolicyId": "2b41858e-a327-4e63-9539-ff9b123c88a2",

}

}

Explanation

Creates a new project grant and its associated policy from the following information:

  • granteeAccountId the account that gets access for the project
  • projectActions the set of actions allowed by the policy. See the project policy API section below for a list of all the available actions
  • projectPolicyName is optional and associates a human-readable name with the policy

The response describes the new project grant including it’s id that can be used to query specifically this grant in the future.

Example cURL:

curl -X POST

'https://release.api.golem.cloud/v1/projects/866e1f4a-cf1a-40aa-ad8f-77e33294e999/grants'

-H 'Content-Type: application/json'

-d '{"granteeAccountId": "ae9b9f24-cfba-4dc6-92c6-c6fecdee88b5", "projectActions": ["ViewComponent", "ViewInstance"], "projectPolicyName": "my new policy"}'

-H 'Authorization: Bearer 03f17466-202f-43ac-86cc-52e6c6a42d2d'

Delete a project grant

MethodPathRequestResponse
DELETE/v1/projects/{project-id}/grants/{grant-id}--

Explanation

Deletes an existing grant of a specific project.

Example cURL:

curl -X DELETE

'https://release.api.golem.cloud/v1/projects/866e1f4a-cf1a-40aa-ad8f-77e33294e999/grants/2b21e703-cd02-4873-bb6b-e1caa3c2961f'

-H 'Authorization: Bearer 03f17466-202f-43ac-86cc-52e6c6a42d2d'

Project grant API errors

All project grant endpoints can return with the following errors:

StatusBodyDescription
400{ "errors": ["error1", ...] }Invalid request, returning with a list of issues detected in the request.
401{ "message": "..." }Unauthorized
403{ "error": "..." }Maximum number of projects exceeded
404{ "message": "..." }Project not found
500{ "error": "..." }Internal server error