Skip to content

Commit 68c3746

Browse files
committed
Utilize admonitions
1 parent 5ec01ff commit 68c3746

16 files changed

Lines changed: 48 additions & 56 deletions

File tree

docs/architecture/crate-layout.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,8 @@ The Cloudflare Workers WASM runtime:
6969
- JS `ReadableStream` passthrough for zero-copy streaming
7070
- Config loading from env vars (`PROXY_CONFIG`)
7171

72-
::: warning
73-
This crate is excluded from the workspace `default-members` because WASM types are `!Send` and won't compile on native targets. Always build with `--target wasm32-unknown-unknown`.
74-
:::
72+
> [!WARNING]
73+
> This crate is excluded from the workspace `default-members` because WASM types are `!Send` and won't compile on native targets. Always build with `--target wasm32-unknown-unknown`.
7574
7675
### `source-coop` (lib)
7776

docs/architecture/request-lifecycle.md

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -72,19 +72,17 @@ Used for: **LIST, errors, synthetic responses**
7272

7373
For LIST operations, the handler calls `object_store::list_with_delimiter()` via the backend's store, builds S3 `ListObjectsV2` XML from the results, and returns it as a complete response. If a `ListRewrite` is configured, key prefixes are transformed in the XML.
7474

75-
::: info
76-
LIST returns all results in a single response. `IsTruncated` is always `false`. The proxy does not support S3-style pagination with continuation tokens.
77-
:::
75+
> [!NOTE]
76+
> LIST returns all results in a single response. `IsTruncated` is always `false`. The proxy does not support S3-style pagination with continuation tokens.
7877
7978
### `NeedsBody(PendingRequest)`
8079

8180
Used for: **CreateMultipartUpload, UploadPart, CompleteMultipartUpload, AbortMultipartUpload**
8281

8382
Multipart operations need the request body (e.g., the XML body for `CompleteMultipartUpload`). The runtime materializes the body, then calls `handler.handle_with_body()`, which signs the request using `S3RequestSigner` and sends it via `backend.send_raw()`.
8483

85-
::: warning
86-
Multipart uploads are only supported for `backend_type = "s3"`. Non-S3 backends should use single PUT requests (object_store handles chunking internally).
87-
:::
84+
> [!WARNING]
85+
> Multipart uploads are only supported for `backend_type = "s3"`. Non-S3 backends should use single PUT requests (object_store handles chunking internally).
8886
8987
## Response Header Forwarding
9088

docs/auth/backend-auth.md

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -113,9 +113,8 @@ When OIDC provider keys are configured, the proxy serves two well-known endpoint
113113
}
114114
```
115115

116-
::: warning
117-
These endpoints must be publicly accessible. Cloud providers fetch them at JWT validation time to verify signatures. If they are behind a firewall or VPN, credential exchange will fail.
118-
:::
116+
> [!WARNING]
117+
> These endpoints must be publicly accessible. Cloud providers fetch them at JWT validation time to verify signatures. If they are behind a firewall or VPN, credential exchange will fail.
119118
120119
### The Exchange Flow in Detail
121120

@@ -148,9 +147,8 @@ On subsequent requests, cached credentials are reused until they expire.
148147
--thumbprint-list <thumbprint>
149148
```
150149

151-
::: tip
152-
To get the thumbprint, fetch the TLS certificate chain from your proxy's domain. AWS uses this to verify the HTTPS connection to the JWKS endpoint.
153-
:::
150+
> [!TIP]
151+
> To get the thumbprint, fetch the TLS certificate chain from your proxy's domain. AWS uses this to verify the HTTPS connection to the JWKS endpoint.
154152
155153
2. **Create an IAM Role** with a trust policy that allows the proxy to assume it:
156154
```json
@@ -210,9 +208,8 @@ On subsequent requests, cached credentials are reused until they expire.
210208

211209
### Azure Blob Storage
212210

213-
::: info Planned
214-
Azure OIDC backend auth is planned but not yet implemented. The proxy currently supports Azure with static credentials only.
215-
:::
211+
> [!NOTE]
212+
> **Planned** — Azure OIDC backend auth is planned but not yet implemented. The proxy currently supports Azure with static credentials only.
216213
217214
**Planned setup:**
218215

@@ -223,9 +220,8 @@ Azure OIDC backend auth is planned but not yet implemented. The proxy currently
223220

224221
### Google Cloud Storage
225222

226-
::: info Planned
227-
GCS OIDC backend auth is planned but not yet implemented. The proxy currently supports GCS with static credentials only.
228-
:::
223+
> [!NOTE]
224+
> **Planned** — GCS OIDC backend auth is planned but not yet implemented. The proxy currently supports GCS with static credentials only.
229225
230226
**Planned setup:**
231227

docs/auth/proxy-auth.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ backend_type = "s3"
2323
anonymous_access = true
2424
```
2525

26-
Anonymous access only allows `GetObject`, `HeadObject`, and `ListBucket`. Write operations always require authentication.
26+
> [!NOTE]
27+
> Anonymous access only allows `GetObject`, `HeadObject`, and `ListBucket`. Write operations always require authentication.
2728
2829
## Long-Lived Access Keys
2930

docs/auth/sealed-tokens.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,8 @@ export SESSION_TOKEN_KEY="<base64-encoded-32-byte-key>"
4747

4848
This key must be the same across all instances of the proxy. If you rotate the key, all existing session tokens become invalid — clients will need to re-authenticate.
4949

50-
::: warning
51-
`SESSION_TOKEN_KEY` is required for the Cloudflare Workers runtime. Without it, temporary credentials from STS cannot be verified on subsequent requests.
52-
:::
50+
> [!WARNING]
51+
> `SESSION_TOKEN_KEY` is required for the Cloudflare Workers runtime. Without it, temporary credentials from STS cannot be verified on subsequent requests.
5352
5453
## Scope Behavior
5554

docs/configuration/buckets.md

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,8 @@ secret_access_key = "..."
5555

5656
### Azure Blob Storage
5757

58-
::: info
59-
Requires the `azure` feature flag on `source-coop-core`. Enabled by default in the server runtime, not available in CF Workers.
60-
:::
58+
> [!NOTE]
59+
> Requires the `azure` feature flag on `source-coop-core`. Enabled by default in the server runtime, not available in CF Workers.
6160
6261
```toml
6362
[buckets.backend_options]
@@ -75,9 +74,8 @@ access_key = "..."
7574

7675
### Google Cloud Storage
7776

78-
::: info
79-
Requires the `gcp` feature flag on `source-coop-core`. Enabled by default in the server runtime, not available in CF Workers.
80-
:::
77+
> [!NOTE]
78+
> Requires the `gcp` feature flag on `source-coop-core`. Enabled by default in the server runtime, not available in CF Workers.
8179
8280
```toml
8381
[buckets.backend_options]

docs/configuration/credentials.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,8 @@ Long-lived credentials are appropriate for:
4848
- **Development and testing** environments
4949
- **Environments without an OIDC provider**
5050

51-
For CI/CD workflows and user-facing applications, prefer [OIDC/STS temporary credentials](/auth/proxy-auth#oidcsts-temporary-credentials) for better security (automatic expiration, no stored secrets).
51+
> [!TIP]
52+
> For CI/CD workflows and user-facing applications, prefer [OIDC/STS temporary credentials](/auth/proxy-auth#oidcsts-temporary-credentials) — they expire automatically and avoid storing secrets in config.
5253
5354
## Disabling Credentials
5455

docs/configuration/providers/dynamodb.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,5 @@ The provider uses a single-table design with partition key (`PK`) and sort key (
2828
- Serverless deployments where a database server isn't practical
2929
- High-availability requirements (DynamoDB's built-in replication)
3030

31-
::: tip
32-
Wrap the DynamoDB provider with [CachedProvider](./cached) to reduce read costs and latency.
33-
:::
31+
> [!TIP]
32+
> Wrap the DynamoDB provider with [CachedProvider](./cached) to reduce read costs and latency.

docs/configuration/providers/postgres.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,5 @@ let provider = PostgresProvider::new(pool);
2323
- Relational data management preferences
2424
- Complex queries or joins with other application data
2525

26-
::: tip
27-
Wrap the PostgreSQL provider with [CachedProvider](./cached) to reduce query load and latency.
28-
:::
26+
> [!TIP]
27+
> Wrap the PostgreSQL provider with [CachedProvider](./cached) to reduce query load and latency.

docs/configuration/roles.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,8 @@ Prefix matching follows these rules:
104104
- If the prefix ends with `/` or is empty: the key must start with the prefix
105105
- Otherwise: the key must equal the prefix exactly, or start with the prefix followed by `/`
106106

107-
This prevents a prefix like `data` from accidentally matching `data-private/secret.txt`. The prefix `data/` would only match keys under the `data/` directory.
107+
> [!IMPORTANT]
108+
> A prefix without a trailing `/` must match exactly or be followed by `/`. This prevents `data` from matching `data-private/secret.txt`. Use `data/` to restrict to that directory.
108109
109110
## Template Variables
110111

0 commit comments

Comments
 (0)