@envpilot/cli 1.7.2 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -64,6 +64,26 @@ The TUI returns after each command finishes, so you can run multiple commands in
64
64
  | `envpilot pull [options]` | Pull variables into a local `.env` file |
65
65
  | `envpilot push [options]` | Push local `.env` changes to Envpilot |
66
66
 
67
+ ### Variable Requests
68
+
69
+ Developers don't have direct write access — instead they submit a request,
70
+ and an owner, project manager, or team lead reviews it on the dashboard
71
+ (choosing the final environments on approval).
72
+
73
+ | Command | Description |
74
+ | ----------------------------- | ---------------------------------------------------------------------- |
75
+ | `envpilot request [options]` | Request a new variable (interactive: key, value, environments) |
76
+ | `envpilot requests [options]` | List variable requests for the linked project with their review status |
77
+
78
+ ```bash
79
+ envpilot request # guided prompt: key → value → description → environments
80
+ envpilot requests # all requests for the linked project
81
+ envpilot requests --status pending # filter: pending | approved | rejected | canceled
82
+ ```
83
+
84
+ Environment choices are limited to the environments you have access to —
85
+ a developer scoped to `development` cannot request a production variable.
86
+
67
87
  ### Browsing Resources
68
88
 
69
89
  | Command | Description |
@@ -107,6 +127,8 @@ Run `envpilot man` for the full command reference, or `envpilot man <command>` f
107
127
  | `--dry-run` | `pull` | Preview changes without writing to disk |
108
128
  | `--json` | `list projects`, `list organizations`, `usage` | Output as JSON |
109
129
  | `--force` | `unlink` | Skip confirmation prompt |
130
+ | `--project <id>` | `request`, `requests` | Target a specific linked project |
131
+ | `--status <status>` | `requests` | Filter requests: pending, approved, rejected, canceled |
110
132
 
111
133
  ## Pull Formats
112
134
 
@@ -124,17 +146,20 @@ envpilot pull --format docker-compose # Docker Compose
124
146
 
125
147
  ## Role-Based Access
126
148
 
127
- Envpilot enforces two-tier role-based access control:
149
+ Envpilot uses one unified organization role per user:
128
150
 
129
- **Organization roles** -- Admin, Team Lead, Member
151
+ **Owner > Project Manager > Team Lead > Developer**
130
152
 
131
- **Project roles** -- Manager, Developer, Viewer
153
+ What you can do in a project follows from this role plus whether you are
154
+ assigned to the project. Developers can additionally be scoped to specific
155
+ environments, and per-variable read/write grants control their access.
132
156
 
133
- | Role | Pull | Push (direct) | Push (approval request) | Manage permissions |
134
- | --------- | ------------------------ | ------------- | ----------------------- | ------------------ |
135
- | Manager | Yes | Yes | -- | Yes |
136
- | Developer | Yes | No | Yes | No |
137
- | Viewer | Permitted variables only | No | No | No |
157
+ | Role | Pull | Push (direct) | Request new variable | Review requests | Manage permissions |
158
+ | --------------- | -------------------------------------- | ------------- | -------------------- | --------------- | ------------------ |
159
+ | Owner | Yes | Yes | -- (creates direct) | Yes | Yes |
160
+ | Project Manager | Yes (assigned projects) | Yes | -- (creates direct) | Yes | Yes |
161
+ | Team Lead | Yes (assigned projects) | Yes | -- (creates direct) | Yes | Yes |
162
+ | Developer | Granted variables, scoped environments | No | Yes | No | No |
138
163
 
139
164
  ## Security
140
165
 
@@ -4,7 +4,7 @@ import {
4
4
  getTopLevelCommandCatalog,
5
5
  getUser,
6
6
  isAuthenticated
7
- } from "./chunk-UVAK2D4O.js";
7
+ } from "./chunk-QYRSBLFW.js";
8
8
 
9
9
  // src/ui/app.tsx
10
10
  import {