You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/dir/directory-public-staging.md
+63-29Lines changed: 63 additions & 29 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,13 +1,18 @@
1
1
# Directory Public Staging Environment
2
2
3
-
This is a public staging environment for development and testing. Keep in mind the following:
3
+
This page describes the Directory public staging environment and how to connect your organization to it. You establish trust by federating your SPIRE server with the Directory SPIRE server using one of two supported bundle endpoint profiles: `https_web` (used by the testbed and recommended for most cases) or `https_spiffe` (SPIFFE mutual TLS).
4
4
5
-
* There are no SLA or data persistence guarantees.
6
-
* This environment is not for production use.
7
-
* This environment is ideal for prototyping, integration, and exploration.
5
+
!!! note
6
+
The public staging environment is for development and testing. Keep in mind the following:
7
+
8
+
- There are no SLA or data persistence guarantees.
9
+
- This environment is not for production use.
10
+
- This environment is ideal for prototyping, integration, and exploration.
8
11
9
12
## Architecture Overview
10
13
14
+
The following diagram shows how your application, the Directory network, and other federation members connect via the Directory API and SPIRE federation.
15
+
11
16
```mermaid
12
17
flowchart LR
13
18
subgraph YourApplication["Your Application"]
@@ -31,6 +36,8 @@ flowchart LR
31
36
32
37
## Available Endpoints
33
38
39
+
Use the following endpoints to reach the public staging Directory API, SPIRE federation, and status dashboard.
| Directory API |`https://api.directory.agntcy.org`| Main API for agent discovery and management |
@@ -46,6 +53,8 @@ For the testbed production deployment the following endpoints are available:
46
53
47
54
## Quick Start Guide
48
55
56
+
This section walks you through preparing your environment, configuring the client, and completing federation so you can use the public staging Directory.
57
+
49
58
### Prerequisites
50
59
51
60
Before you begin, ensure you have:
@@ -171,10 +180,28 @@ To interact with the Directory, you need to establish a trusted federation betwe
171
180
172
181
### Step 1: Prepare Your Federation Request
173
182
174
-
Create a file with your SPIRE server details using the template below:
183
+
Create a federation file with your SPIRE server details. The Directory supports two bundle endpoint profiles; choose the one that matches your environment.
184
+
185
+
**Option A: https_web profile** (recommended for testbed and most deployments)
186
+
187
+
Federation over standard HTTPS using CA-signed certificates. No bootstrap bundle exchange is required. The testbed uses this profile.
188
+
189
+
```yaml
190
+
# onboarding/federation/your-org.com.yaml
191
+
className: dir-spire
192
+
trustDomain: your-org.com
193
+
bundleEndpointURL: https://spire.your-org.com
194
+
bundleEndpointProfile:
195
+
type: https_web
196
+
```
197
+
198
+
**Option B: https_spiffe profile**
199
+
200
+
Federation over SPIFFE mutual TLS using X.509-SVIDs. Requires a one-time bootstrap bundle exchange with the Directory and SSL passthrough on your ingress.
175
201
176
202
```yaml
177
-
# onboarding/your-org.com.yaml
203
+
# onboarding/federation/your-org.com.yaml
204
+
className: dir-spire
178
205
trustDomain: your-org.com
179
206
bundleEndpointURL: https://spire.your-org.com
180
207
bundleEndpointProfile:
@@ -194,47 +221,54 @@ trustDomainBundle: |-
194
221
}
195
222
```
196
223
197
-
!!! tip
198
-
To get your trust bundle:
224
+
!!! note
225
+
Organizations must establish their own secure procedures for exchanging bootstrap bundles with federation partners. The bundle exchange mechanism (email, file transfer, version control, etc.) should align with organizational security policies.
199
226
200
-
```bash
201
-
# Export your SPIRE server trust bundle
202
-
spire-server bundle show -format spiffe > your-trust-bundle.json
203
-
```
227
+
To get your trust bundle (for `https_spiffe` or for sharing with the Directory):
228
+
229
+
```bash
230
+
# Export your SPIRE server trust bundle
231
+
spire-server bundle show -format spiffe > your-trust-bundle.json
232
+
```
204
233
205
234
### Step 2: Submit Federation Request
206
235
207
-
1. Fork the [AGNTCY Directory repository](https://github.com/agntcy/dir)
236
+
Submit your federation configuration to the Directory by adding a file to the [dir-staging](https://github.com/agntcy/dir-staging) repository and opening a pull request:
2. Add your federation file under `onboarding/federation/` using the same structure as in Step 1. Name the file after your trust domain (e.g. `your-org.com.yaml`):
- Description: Brief description of your organization and use case.
259
+
- Files: Your new or updated file under `onboarding/federation/`.
260
+
261
+
### Step 3: Configure Your SPIRE Server
228
262
229
-
Save the trust bundle to the specified path.
263
+
Add the Directory SPIRE server as a federation peer in your SPIRE server configuration. Obtain the Directory trust bundle from the [dir-staging onboarding resources](https://github.com/agntcy/dir-staging/tree/main/onboarding) (or from the Directory team after your federation request is approved) and configure it in your SPIRE server per your deployment method.
230
264
231
265
### Step 4: Verify Federation
232
266
233
267
```bash
234
268
# Check federation status
235
269
spire-server federation list
236
270
237
-
# Should show federated trust domain
271
+
# Should show the federated trust domain
238
272
spire-server federation show --trustDomain dir.agntcy.org
Copy file name to clipboardExpand all lines: docs/dir/directory-testbed-deployment.md
+188-1Lines changed: 188 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,4 @@
1
-
# Sandbox Deployment
1
+
# Testbed Deployment
2
2
3
3
The [dir-staging](https://github.com/agntcy/dir-staging) repository contains the deployment manifests for AGNTCY Directory project. It is designed to be used with Argo CD for GitOps-style continuous deployment.
4
4
@@ -362,3 +362,190 @@ with the Directory Server, follow these steps:
362
362
dirctl info baeareiesad3lyuacjirp6gxudrzheltwbodtsg7ieqpox36w5j637rchwq
363
363
```
364
364
365
+
## GitHub OAuth Authentication
366
+
367
+
The Directory server can be deployed with an optional Envoy gateway that provides GitHub OAuth authentication, allowing users to access the Directory API using their GitHub identity.
368
+
369
+
### Features
370
+
371
+
- Device Flow (default) — No OAuth App registration required.
For CI/CD, your GitHub user or bot account must be assigned a role (admin or reader) in the RBAC configuration.
482
+
483
+
### Configuration Options
484
+
485
+
#### Available API Methods
486
+
487
+
For a complete list of all 24 Directory API methods with their full gRPC paths and descriptions, see the [envoy-authz values.yaml reference](https://github.com/agntcy/dir/blob/main/install/charts/envoy-authz/values.yaml#L93-L151).
488
+
489
+
#### User-based roles
490
+
491
+
Specific users with specific permissions:
492
+
493
+
```yaml
494
+
authServer:
495
+
authorization:
496
+
defaultRole: ""# No default role - explicit assignment required
497
+
roles:
498
+
admin:
499
+
allowedMethods: ["*"]
500
+
users:
501
+
- "github:alice"
502
+
- "github:bob"
503
+
orgs: []
504
+
```
505
+
506
+
#### Organization-based roles
507
+
508
+
Entire GitHub org gets a role:
509
+
510
+
```yaml
511
+
authServer:
512
+
authorization:
513
+
defaultRole: "reader"# All authenticated users get reader
See [Directory Helm Chart documentation](https://github.com/agntcy/dir/tree/main/install/charts/envoy-authz) forcomplete API method list and advanced configuration.
The Directory Sandbox is a local environment for development and testing. It can be used to test your application with the Directory network. This environment provides a fully functional Directory instance for development, testing, and exploration purposes.
3
+
The Directory Testbed is a local environment for development and testing. It can be used to test your application with the Directory network. This environment provides a fully functional Directory instance for development, testing, and exploration purposes.
4
4
5
-
There are two ways to use the sandbox:
5
+
There are two ways to use the testbed:
6
6
7
-
-[Using the public staging environment](./directory-public-staging.md).
8
-
-[Deploying the local sandbox environment](./directory-sandbox-deployment.md).
7
+
-[Deploying the local testbed environment](./directory-testbed-deployment.md)
8
+
-[Using the public staging environment](./directory-public-staging.md)
0 commit comments