Skip to content

Commit 3ed8082

Browse files
authored
docs: remove RA references (#910)
Signed-off-by: Miguel Martinez Trivino <[email protected]>
1 parent 0f0ff05 commit 3ed8082

File tree

10 files changed

+69
-70
lines changed

10 files changed

+69
-70
lines changed

docs/docs/getting-started/attestation-crafting.md

Lines changed: 31 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ title: Attestation Crafting
1010

1111
## Introduction
1212

13-
In the previous section, we created a workflow definition, a contract and a robot account in the control plane. Next, we'll perform an attestation crafting example using Chainloop.
13+
In the previous section, we created a workflow definition, a contract and an API Token in the control plane. Next, we'll perform an attestation crafting example using Chainloop.
1414

1515
The lifecycle of a crafting process has the following stages: `init`, `add`, `push` or `reset`. As you can see, it mimics the workflow of a commonly used version control tool, and this is not by coincidence. Chainloop wants to make sure that the tooling feels familiar to developers and that no security jargon leaks into this stage of the process. For a developer, creating an attestation must be as simple as initializing it, adding materials to it and pushing it.
1616

@@ -23,21 +23,21 @@ During this stage, the crafting tool will contact the control plane to
2323
- Signal the intent of starting an attestation.
2424
- Retrieve the associated workflow contract.
2525
- If the contract has a specified runner context type, check that we are compliant with it.
26-
- Initialize environment variables explicitly stated in the contract.
27-
28-
:::note
29-
In the future, during this initialization stage, we will also retrieve ephemeral signing keys for keyless signing/verification
30-
:::
26+
- Initialize environment variables, explicitly stated in the contract and other contextual information.
3127

3228
#### attestation add
3329

34-
Add the **materials required by the contract**, i.e artifact, OCI image ref, SBOM.
30+
Add the **materials required by the contract** and any other additional pieces of evidence, i.e artifact, OCI image ref, SBOM.
3531

3632
The `add` command knows how to handle each kind of material transparently to the user.
3733

38-
- STRING kinds will be injected as is.
34+
For example
35+
3936
- ARTIFACT kinds will be uploaded to your artifact registry and referenced by their content digest.
4037
- CONTAINER_IMAGE kinds will be resolved to obtain their repository digests using the local authentication keychain.
38+
- SBOM_CYCLONEDX_JSON will validate the right SBOM format and upload it to the artifact registry.
39+
40+
For a complete list of available material types, see the [reference](/reference/operator/contract#material-schema).
4141

4242
#### attestation push
4343

@@ -47,7 +47,7 @@ This stage will take the current crafting state, validate that it has all the re
4747
- Push it to the control plane for storage
4848

4949
:::note
50-
Chainlooop leverages Cosign for signing and verifying, so it supports any of its key providers.
50+
Chainloop leverages Cosign for signing and verifying, so it supports any of its key providers.
5151
Currently, local file-based `cosign private key` and GCP, AWS, Azure and Hashicorp Vault KMS are supported.
5252

5353
In future releases this will not be needed since we will rely on keyless signing and verification.
@@ -63,31 +63,31 @@ See the state of the current crafting process.
6363

6464
## Crafting our first attestation locally
6565

66-
To create an attestation two things are required, the Chainloop crafting tool and a robot account.
66+
To create an attestation two things are required, the Chainloop crafting tool and an [API Token](/reference/operator/api-tokens).
6767

6868
The crafting tool is currently bundled within Chainloop command line tool. To install it just follow the [installation](installation) instructions.
6969

70-
The robot account was created during the [previous step](./workflow-definition#robot-account-creation) and it's required during all the stages of the crafting process. It can be provided via the `--token` flag or the `$CHAINLOOP_TOKEN` environment variable.
71-
72-
### Initialization
70+
The API Token was created during the [previous step](./workflow-definition#api-token-creation) and it's required during all the stages of the crafting process. It can be provided via the `--token` flag or the `$CHAINLOOP_TOKEN` environment variable.
7371

7472
```bash
7573
$ export CHAINLOOP_TOKEN=deadbeef
7674
```
7775

76+
### Initialization
77+
7878
#### Options
7979

8080
`chainloop attestation init` supports the following options
8181

82-
- `--token` token provided by the SecOps team. Alternatively, you can set the `CHAINLOOP_TOKEN` environment variable.
82+
- `--token` token provided by the SecOps team. Alternatively, you can set the `CHAINLOOP_TOKEN` environment variable (required).
83+
- `--name` name of the workflow to run the attestation (required).
8384
- `--revision` of the contract (default: `latest`).
84-
- `--workflow-name` name of the workflow to run the attestation. This is ignored when authentication is based on robot account and needed for api tokens.
8585
- `--dry-run`; do not store the attestation in the Control plane, and do not fail if the runner context or required env variables can not be resolved. Useful for development (default: `false`).
8686

8787
To initialize a new crafting process just run `attestation init` and the system will retrieve the latest version (if no specific revision is set via the `--revision` flag) of the contract.
8888

8989
```bash
90-
$ chainloop attestation init --dry-run
90+
$ chainloop attestation init --name build-and-test
9191

9292
INF Attestation initialized! now you can check its status or add materials to it
9393
┌───────────────────┬──────────────────────────────────────┐
@@ -191,14 +191,21 @@ $ chainloop attestation status --full
191191
### Encode, sign and push attestation
192192

193193
:::note
194-
Chainlooop leverages Cosign for signing and verifying, so it supports any of its key providers.
194+
Chainloop leverages Cosign for signing and verifying, so it supports any of its key providers.
195195
Currently, local file-based `cosign private key` and GCP, AWS, Azure and Hashicorp Vault KMS are supported.
196196
In future releases this will not be needed since we will rely on keyless signing and verification.
197197
:::
198198

199-
Since all the required materials have been attached, a **signed in-toto statement can now be generated and sent for storage**. This example uses AWS KMS for signing:
199+
Since all the required materials have been attached, a **signed in-toto statement can now be generated and sent for storage**.
200+
201+
```bash
202+
# Sign and push using a local private key
203+
$ export CHAINLOOP_SIGNING_PASSWORD="private key passphrase"
204+
$ chainloop attestation push --key cosign-private.key
205+
```
200206

201207
```bash
208+
# or, as additional example, using KMS
202209
$ chainloop attestation push --key awskms:///arn:aws:kms:us-east-1:1234567890:key/12345678-a843-43e1-8c5b-1234567890
203210
```
204211

@@ -216,7 +223,6 @@ INF Attestation pushed!
216223
}
217224
]
218225
}
219-
220226
```
221227

222228
## CI integration
@@ -242,10 +248,11 @@ jobs:
242248
env:
243249
# highlight-start
244250
# Version of Chainloop to install
245-
CHAINLOOP_VERSION: 0.86.0
246-
# Export robot-account env variable
251+
CHAINLOOP_VERSION: 0.91.1
247252
# Used by the CLI to authenticate with the control plane
248-
CHAINLOOP_ROBOT_ACCOUNT: ${{ secrets.CHAINLOOP_WF_RELEASE }}
253+
CHAINLOOP_TOKEN: ${{ secrets.CHAINLOOP_WF_RELEASE }}
254+
# The name of the workflow registered in Chainloop control plane
255+
CHAINLOOP_WORKFLOW_NAME: build-and-test
249256
# highlight-end
250257
name: "Release CLI and container images"
251258
runs-on: ubuntu-latest
@@ -268,7 +275,7 @@ jobs:
268275
# highlight-start
269276
- name: Initialize Attestation
270277
run: |
271-
chainloop attestation init --contract-revision 1
278+
chainloop attestation init --name $CHAINLOOP_WORKFLOW_NAME --contract-revision 1
272279
# highlight-end
273280
- name: Set up Go
274281
uses: actions/setup-go@v3
@@ -322,7 +329,7 @@ jobs:
322329
if: ${{ success() }}
323330
run: |
324331
chainloop attestation status --full
325-
# Note that these commands are using CHAINLOOP_ROBOT_ACCOUNT env variable to authenticate
332+
# Note that these commands are using CHAINLOOP_TOKEN env variable to authenticate
326333
chainloop attestation push --key env://CHAINLOOP_SIGNING_KEY
327334
env:
328335
CHAINLOOP_SIGNING_KEY: ${{ secrets.COSIGN_KEY }}

docs/docs/getting-started/workflow-definition.mdx

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@ A workflow represents the identity of any automation, any CI/CD workflow you wan
2222

2323
<WorkflowContractIntro />
2424

25-
### Robot Accounts
25+
### Chainloop API Token
2626

27-
A robot account is a long-lasting, though revokable, **secret token associated with a Workflow**. It's meant to be used in the target CI/CD pipeline during the attestation process. This token along with the crafting CLI are the only two things development/Apps teams need for the integration.
27+
A [Chainloop API Token](/reference/operator/api-tokens) is a long-lasting, though revokable, **secret token associated with a Chainloop organization**. It's meant to be used in the target CI/CD pipeline during the attestation process and/or for unatended operations with the controlplane. This token along with the crafting CLI are the only two things development teams need to perform attestations.
2828

2929
## Workflow and Contract creation
3030

@@ -34,7 +34,7 @@ To achieve that, we will need to
3434

3535
- Create a new Workflow Contract (optional)
3636
- Create a Workflow associated with a new or existing Contract
37-
- Create a Robot account for that Workflow so the integration can happen in the CI.
37+
- Create an API Token for the CI/CD integration
3838

3939
### Workflow Create
4040

@@ -146,32 +146,31 @@ $ chainloop workflow contract update \
146146
We could have reached the same result by first creating the contract via `chainloop workflow contract create -f ...` and then attaching it during workflow creation `chainloop workflow create ... --contract deadbeef`
147147
:::
148148
149-
### Robot Account creation
149+
### API Token Creation
150150
151-
The final step is to create a robot account that will be shared with the development team so they can start the integration.
151+
The final step is to create an API Token that will be shared with the development team so they can start the integration.
152152
153153
:::note
154154
155-
- Robot accounts are attached to a single workflow. If you create another workflow, another robot account must be created.
156-
- You can have more than one robot account associated with a workflow.
157-
- Accounts can be revoked via `chainloop workflow robot-account revoke` command
155+
- API Tokens are attached to a single organization and can be used to perform attestations in multiple workflows.
156+
- You can have multiple API Tokens per organization
157+
- Tokens can be revoked via `chainloop org api-token revoke` command
158158
159159
:::
160160
161161
```bash
162-
$ chainloop workflow robot-account create \
163-
--workflow 2d289d33-8241-47b7-9ea2-8bd8b7c126f8 \
164-
--name prod-ci
162+
$ chainloop org api-token create --name prod-ci
165163

166-
┌──────────────────────────────────────┬─────────┬──────────────────────────────────────┬─────────────────────┬────────────┐
167-
│ ID │ NAME │ WORKFLOW ID │ CREATED AT │ REVOKED AT │
168-
├──────────────────────────────────────┼─────────┼──────────────────────────────────────┼─────────────────────┼────────────┤
169-
4f2376fa-48c8-4e46-a921-977ec44486a9 │ prod-ci │ 2d289d33-8241-47b7-9ea2-8bd8b7c126f8 │ 01 Nov 22 23:43 UTC │ │
170-
└──────────────────────────────────────┴─────────┴──────────────────────────────────────┴─────────────────────┴────────────┘
164+
┌──────────────────────────────────────┬─────────┬──────────────────────────────────────────────┬────────────┐
165+
│ ID │ NAME │ DESCRIPTION │ CREATED AT │ EXPIRES AT │ REVOKED AT │
166+
├──────────────────────────────────────┼─────────┼──────────────────────────────────────────────┼────────────┤
167+
7016d5ad-6d2b-4da4-b657-4ad1ddcb4469 │ prod-ci │ │ 05 Jun 24 14:56 UTC │ │
168+
└──────────────────────────────────────┴─────────┴──────────────────────────────────────────────┴────────────┘
171169

172-
Save the following token since it will not printed again:
170+
Save the following token since it will not printed again:
171+
172+
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.REDACTED.GzTiR2r8YuccAmn-eZjCMNTSY5MU2gcRGNzu5rBhl80
173173

174-
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.REDACTED.lXdvZusJgHyeHDl39RGPNxxrmTUZBN0_QAbJU5ZVxR8
175174
```
176175
177176
We have everything we need to integrate our CI with Chainloop!

docs/docs/guides/dagger/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Daggerized version of [Chainloop](https://docs.chainloop.dev) that can be used t
1717

1818

1919
- This module requires existing familiarity with Chainloop and its attestation process. Please refer to [this guide](https://docs.chainloop.dev/getting-started/attestation-crafting) to learn more.
20-
- You need a `token` (aka workflow robot account) [previously generated](https://docs.chainloop.dev/getting-started/workflow-definition#robot-account-creation) by your Chainloop administrator.
20+
- You need an `API Token` [previously generated](https://docs.chainloop.dev/getting-started/workflow-definition#api-token-creation) by your Chainloop administrator.
2121

2222
## Attestation Crafting
2323

docs/docs/guides/dependency-track/dependency-track.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@ There are two steps involved to enable this integration:
4343

4444
### Prerequisites
4545

46-
**Dependency-Track API token**
46+
**Dependency-Track API Token**
4747

48-
An API token is required for the Chainloop instance to communicate securely with DependencyTrack. The required permissions are `BOM_UPLOAD`, `VIEW_PORTFOLIO` (to validate that the provided project ID exists) and optionally `PROJECT_CREATION_UPLOAD` if `project-auto-creation` is enabled, more on that later.
48+
An API Token is required for the Chainloop instance to communicate securely with DependencyTrack. The required permissions are `BOM_UPLOAD`, `VIEW_PORTFOLIO` (to validate that the provided project ID exists) and optionally `PROJECT_CREATION_UPLOAD` if `project-auto-creation` is enabled, more on that later.
4949

5050
The API Key can be created by going to Settings -> Access Management -> Teams -> Select (or create) a Team -> Set permissions -> Copy API key
5151

docs/docs/guides/github-releases/github-releases.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ jobs:
5252
This workflow will trigger every time a new release is published in your repository. It will collect all the assets from the release page and attest them using Chainloop. The attestation will be stored in the workflow you specify in the `workflow_name` field.
5353
There are some parameters that you need to provide:
5454
- `workflow_name`: The name of the workflow in Chainloop where the attestation will be stored.
55-
- `api_token`: The Chainloop API token to authenticate with the Chainloop API.
55+
- `api_token`: The Chainloop API Token to authenticate with the Chainloop API.
5656
- `cosign_key`: The path to the `cosign` key file.
5757
- `cosign_password`: The passphrase for the `cosign` key.
5858

docs/docs/guides/sbom-management/sbom-management.mdx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,9 @@ In the first part, we explain how to:
3030
This guide makes the following assumptions:
3131
* You have Chainloop CLI already installed, and you have already authenticated to the Chainloop control plane. Please check [this CLI installation guide](/getting-started/installation) if you don't.
3232
* You have already added your OCI registry, where all artifacts, metadata, and attestations will be stored. Please learn more about how to do it in [the Account Setup section](/getting-started/setup).
33-
* You have a Chainloop Workflow, default empty Contract, and Robot Account created as explained in [this document](/getting-started/workflow-definition).
33+
* You have a Chainloop Workflow, and an API Token created as explained in [this document](/getting-started/workflow-definition).
3434
* You have a Github Action created for your project in your GitHub repository, which is connected to your Chainloop workflow. The Chainloop Integration Demo Action is a good example. You can check it out [here](https://github.com/chainloop-dev/integration-demo/blob/main/chainloop-demo/github-workflow/release.v1.yaml).
35-
* Your Chainloop Robot Account Token is set locally and in your GitHub project as the `CHAINLOOP_ROBOT_ACCOUNT` environment variable. The Chainloop CLI uses this token to authenticate with our Control Plane.
35+
* Your Chainloop API Token is set locally and in your GitHub project as the `CHAINLOOP_TOKEN` environment variable. The Chainloop CLI uses this token to authenticate with our Control Plane.
3636
* Your Private Key and Private Key Password are exposed locally and in your Github project as the following environment variables. We use this key to sign in-toto attestations for your artifacts, such as SBOMs.
3737
* `CHAINLOOP_SIGNING_KEY`
3838
* `CHAINLOOP_SIGNING_PASSWORD`
@@ -79,7 +79,8 @@ Although the workflow run process can be complex, we will highlight the three mo
7979
### Initializing an attestation
8080
Before adding and sending SBOMs to Chainloop, initiating the attestation process is necessary.
8181
```bash
82-
chainloop attestation init
82+
# --name sbom-cdx is an example of the name of the workflow registered in Chainloop's control plane
83+
chainloop attestation init --name sbom-cdx
8384
```
8485
### Generating SBOMs
8586
Generate SBOM with Syft. Running this command locally will probably generate an empty SBOM, but it should be good enough in our example.

docs/docs/quickstart.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,13 @@ In this quickstart, we will install Chainloop and make our first attestation:
2828
for a complete explanation of Workflows and Contracts.
2929
You might also want to check our [contract reference](/reference/operator/contract).
3030

31-
4. Create API token to perform the attestation process:
31+
4. Create API Token to perform the attestation process:
3232
```bash
3333
export CHAINLOOP_TOKEN=$(chainloop org api-token create --name test-api-token -o json | jq -r ".[].jwt")
3434
```
3535
CHAINLOOP_TOKEN environment variable is commonly used from CI/CD scenarios, where a personal token is not available.
3636
Tokens have narrower permissions, ensuring that they can only perform the operations they are granted to.
37-
More information in [API tokens](/reference/operator/api-tokens#api-tokens).
37+
More information in [API Tokens](/reference/operator/api-tokens#api-tokens).
3838

3939
5. Perform an attestation:
4040

0 commit comments

Comments
 (0)