Skip to content

Commit a01aeb1

Browse files
authored
docs: add references from devel guide to each repo (#21)
Signed-off-by: Miguel Martinez Trivino <[email protected]>
1 parent 9b088f1 commit a01aeb1

File tree

4 files changed

+17
-15
lines changed

4 files changed

+17
-15
lines changed

app/artifact-cas/README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
# Artifact Content Addressable Storage (CAS) Proxy
22

3-
The artifact proxy is a **Content Addressable Storage (CAS) Proxy** that sits in front of different storage backends.
3+
The artifact proxy is a **Content-Addressable Storage (CAS) Proxy** that sits in front of different storage backends.
44

5-
Clients such as the Chainloop Control Plane or the CLI can use this proxy to make sure that **immutable uploads are performed**. Files that later, on **can only be referenced by their content digest (sha256)**.
5+
Clients such as the Chainloop Control Plane or the CLI use this proxy to make sure that **uploaded artifacts are immutable and uniquely identifiable by their content digest (sha256sum)**.
66

77
NOTE: At the moment of this writing, only an [OCI](https://opencontainers.org/) storage backend is supported. In the future you should potentially expect Object Storage Support (i.e AWS s3) as well.
88

99
![cas](../../docs/img/cas-overview.png)
1010

1111
The project is a [Go](https://go.dev/) service that leverages [protocol buffers](https://github.com/protocolbuffers/protobuf) and [gRPC](https://grpc.io/) for its streaming API, [wire](https://github.com/google/wire/) for dependency injection and the [Kratos framework](https://github.com/go-kratos/kratos) for additional utilities such middlewares, configuration management or error handling.
1212

13-
The proxy API implements [a bytestream](https://pkg.go.dev/google.golang.org/api/transport/bytestream) gRPC service. This enables an efficient, and modern, streaming API for chunk based operations on top of HTTP/2.
13+
The proxy API implements a [bytestream gRPC service](https://pkg.go.dev/google.golang.org/api/transport/bytestream). This enables an efficient, and modern, streaming API on top of HTTP/2.
1414

1515
Its structure contains the following top to down layers.
1616

@@ -26,7 +26,7 @@ This secret backend is used to download OCI repository credentials (repository p
2626

2727
## AuthN/AuthZ
2828

29-
The Artifact CAS API expects each request to contain a [JSON Web Token](https://auth0.com/docs/secure/tokens/json-web-tokens) with references to a) what operation is this token allowed to do (Download, Upload) and b) a reference to where the CAS can find the OCI credentials.
29+
The Artifact CAS API expects each request to contain a [JSON Web Token](https://auth0.com/docs/secure/tokens/json-web-tokens) with references to a) what operation is this token allowed to do (download or upload) and b) a reference to where the CAS can find the target OCI credentials.
3030

3131
Currently, this token is generated by the Control Plane and used on demand. You can find the generator we use to craft those tokens [here](../../internal/robotaccount/cas/robotaccount.go).
3232

@@ -36,7 +36,7 @@ Note: there are plans to support [JWKS endpoints](https://auth0.com/docs/secure/
3636

3737
## Runbook
3838

39-
We leverage `make` for most development tasks. Run `make -C app/artifact-cas` to see a list of the available tasks.
39+
We use `make` for most development tasks. Run `make -C app/artifact-cas` to see a list of the available tasks.
4040

4141
### Run the project in development
4242

@@ -77,7 +77,7 @@ make build
7777

7878
### Generate API code from protocol buffer defintions (\*.proto)
7979

80-
We leverage buf.io to lint and generate proto files. Make sure you [install buf](https://docs.buf.build/installation) first. Once done, generating the API code is as easy as executing
80+
We use buf.io to lint and generate proto files. Make sure you [install buf](https://docs.buf.build/installation) first. Once done, generating the API code is as easy as executing
8181

8282
```
8383
make api

app/cli/README.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Command Line Interface (CLI)
22

3-
This Command Line Interface (CLI) is a local client that's used for two purposes
3+
This Command Line Interface (CLI) is a local client that's used for two purposes:
44

55
a) Operator [Management Tasks](https://docs.chainloop.dev/getting-started/workflow-definition)
66

@@ -9,15 +9,15 @@ a) Operator [Management Tasks](https://docs.chainloop.dev/getting-started/workfl
99

1010
b) [Attestation Crafting Process](https://docs.chainloop.dev/getting-started/attestation-crafting)
1111

12-
- This CLI will be used in different CI/CD systems to perform the [attestation process](https://docs.chainloop.dev/getting-started/attestation-crafting)
12+
- Perform the [attestation process](https://docs.chainloop.dev/getting-started/attestation-crafting) inside a CI/CD system.
1313

1414
![cas](../../docs/img/cli-overview.png)
1515

16-
The project is a [Go](https://go.dev/) CLI that leverages [Cobra](https://github.com/spf13/cobra) for CLI scaffolding, [Viper](https://github.com/spf13/viper) for configuration handling, [gRPC](https://grpc.io/) to communicate with both the control plane and the Artifact CAS APIs, and the [cosign](https://github.com/sigstore/cosign), [in-toto](https://github.com/in-toto/in-toto), [DSEE](https://github.com/secure-systems-lab/dsse/) and [SLSA](https://github.com/slsa-framework/slsa) projects to implement the attestation process.
16+
The project is a [Go](https://go.dev/) CLI that leverages [Cobra](https://github.com/spf13/cobra) for CLI scaffolding, [Viper](https://github.com/spf13/viper) for configuration handling, [gRPC](https://grpc.io/) to communicate with both the control plane and the Artifact CAS APIs, and the [cosign](https://github.com/sigstore/cosign), [in-toto](https://github.com/in-toto/in-toto), [DSEE](https://github.com/secure-systems-lab/dsse/) and [SLSA](https://github.com/slsa-framework/slsa) projects for the attestation process.
1717

1818
## Runbook
1919

20-
We leverage `make` for most development tasks. Run `make -C app/cli` to see a list of the available tasks.
20+
We use `make` for most development tasks. Run `make -C app/cli` to see a list of the available tasks.
2121

2222
### Run the project in development
2323

@@ -27,6 +27,8 @@ Refer to [development guide](../../devel/README.md) for more information but in
2727
go run app/cli/main.go --insecure
2828
```
2929

30+
> NOTE: In development a --insecure flag must be provided to talk to the local APIs
31+
3032
### Configure the CLI to point to the local control plane and CAS services.
3133

3234
If you want to use this CLI pointing to a local or custom instance of Chainloop, you need to perform a config override this way.

app/controlplane/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ The control plane has 4 main dependencies
2727
2828
## Runbook
2929

30-
We leverage `make` for most development tasks. Run `make -C app/controlplane` to see a list of the available tasks.
30+
We use `make` for most development tasks. Run `make -C app/controlplane` to see a list of the available tasks.
3131

3232
### Run the project in development
3333

@@ -58,7 +58,7 @@ make build
5858

5959
### Generate API code from protocol buffer defintions (\*.proto)
6060

61-
We leverage buf.io to lint and generate proto files. Make sure you [install buf](https://docs.buf.build/installation) first.
61+
We use buf.io to lint and generate proto files. Make sure you [install buf](https://docs.buf.build/installation) first.
6262

6363
Once done, generating the API code is as easy as executing
6464

devel/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ docker compose up
3333

3434
Once you have the pre-required services up and running, you should be able to run the different Chainloop server-side components, in our case we have:
3535

36-
- The Control Plane (`app/controlplane`)
37-
- The Artifact Content Addressable Storage (CAS) Proxy (`app/artifact-cas`)
36+
- The Control Plane [`app/controlplane`](../app/controlplane/)
37+
- The Artifact Content Addressable Storage (CAS) Proxy [`app/artifact-cas`](../app/artifact-cas/)
3838

3939
These components are built using [Go](https://go.dev/), have a `Makefile` and a `make run` target for convenience.
4040

@@ -43,7 +43,7 @@ These components are built using [Go](https://go.dev/), have a `Makefile` and a
4343

4444
### 4 - Using the CLI pointing to the local environment
4545

46-
The Command line interface (CLI) is used for both a) operate on the control plane and b) run the attestation process on your CI/CD.
46+
The [Command line interface (CLI)](../app/cli/) is used for both a) operate on the control plane and b) run the attestation process on your CI/CD.
4747

4848
You can run it by executing `go run app/cli/main.go`
4949

0 commit comments

Comments
 (0)