vgs-cli 1.36.0.dev2__py3-none-any.whl → 1.36.0.dev4__py3-none-any.whl

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.
Files changed (51) hide show
  1. {vgs_cli-1.36.0.dev2.data → vgs_cli-1.36.0.dev4.data}/data/vgscli/tenant-schema.yaml +12 -0
  2. {vgs_cli-1.36.0.dev2.data → vgs_cli-1.36.0.dev4.data}/data/vgscli/tenant-template.yaml +5 -0
  3. {vgs_cli-1.36.0.dev2.data → vgs_cli-1.36.0.dev4.data}/data/vgscli/theme.tcss +10 -0
  4. {vgs_cli-1.36.0.dev2.dist-info → vgs_cli-1.36.0.dev4.dist-info}/METADATA +41 -44
  5. {vgs_cli-1.36.0.dev2.dist-info → vgs_cli-1.36.0.dev4.dist-info}/RECORD +50 -48
  6. vgscli/_version.py +1 -1
  7. vgscli/auth_server.py +5 -4
  8. vgscli/console/app.py +679 -331
  9. vgscli/console/auth.py +7 -0
  10. vgscli/console/backend.py +58 -2
  11. vgscli/console/bootstrap.py +15 -2
  12. vgscli/console/capability_screen.py +185 -0
  13. vgscli/console/commands.py +1 -2
  14. vgscli/console/mutation_screen.py +40 -116
  15. vgscli/console/tenant_onboarding_screen.py +8 -54
  16. vgscli/console/theme.tcss +10 -0
  17. vgscli/console/workflows/forms.py +2 -32
  18. vgscli/console/workflows/mutation.py +12 -48
  19. vgscli/console/workflows/routes.py +3 -38
  20. vgscli/console/workflows/tenant.py +11 -107
  21. vgscli/operations/errors.py +32 -6
  22. vgscli/operations/forms.py +0 -11
  23. vgscli/operations/models.py +12 -0
  24. vgscli/operations/payment_credentials.py +307 -0
  25. vgscli/operations/routes.py +0 -27
  26. vgscli/payment_credentials_api.py +72 -0
  27. vgscli/resource-templates/tenant-template.yaml +5 -0
  28. vgscli/tenant_configuration.py +20 -1
  29. vgscli/validation-schemas/tenant-schema.yaml +12 -0
  30. vgscli/recovery_journal.py +0 -158
  31. {vgs_cli-1.36.0.dev2.data → vgs_cli-1.36.0.dev4.data}/data/vgscli/collect-form-api-schema.yaml +0 -0
  32. {vgs_cli-1.36.0.dev2.data → vgs_cli-1.36.0.dev4.data}/data/vgscli/collect-form-schema.yaml +0 -0
  33. {vgs_cli-1.36.0.dev2.data → vgs_cli-1.36.0.dev4.data}/data/vgscli/console-route-schema.yaml +0 -0
  34. {vgs_cli-1.36.0.dev2.data → vgs_cli-1.36.0.dev4.data}/data/vgscli/credentials-admin.yaml +0 -0
  35. {vgs_cli-1.36.0.dev2.data → vgs_cli-1.36.0.dev4.data}/data/vgscli/form-template.yaml +0 -0
  36. {vgs_cli-1.36.0.dev2.data → vgs_cli-1.36.0.dev4.data}/data/vgscli/http-route-template.yaml +0 -0
  37. {vgs_cli-1.36.0.dev2.data → vgs_cli-1.36.0.dev4.data}/data/vgscli/notification-integration-schema.yaml +0 -0
  38. {vgs_cli-1.36.0.dev2.data → vgs_cli-1.36.0.dev4.data}/data/vgscli/notification-template.yaml +0 -0
  39. {vgs_cli-1.36.0.dev2.data → vgs_cli-1.36.0.dev4.data}/data/vgscli/public-credential-collect.yaml +0 -0
  40. {vgs_cli-1.36.0.dev2.data → vgs_cli-1.36.0.dev4.data}/data/vgscli/read-credentials-no-pci.yaml +0 -0
  41. {vgs_cli-1.36.0.dev2.data → vgs_cli-1.36.0.dev4.data}/data/vgscli/read-credentials-with-pci.yaml +0 -0
  42. {vgs_cli-1.36.0.dev2.data → vgs_cli-1.36.0.dev4.data}/data/vgscli/service-account-schema.yaml +0 -0
  43. {vgs_cli-1.36.0.dev2.data → vgs_cli-1.36.0.dev4.data}/data/vgscli/sftp-route-template.yaml +0 -0
  44. {vgs_cli-1.36.0.dev2.data → vgs_cli-1.36.0.dev4.data}/data/vgscli/vault-resources.yaml +0 -0
  45. {vgs_cli-1.36.0.dev2.data → vgs_cli-1.36.0.dev4.data}/data/vgscli/vault-schema.yaml +0 -0
  46. {vgs_cli-1.36.0.dev2.data → vgs_cli-1.36.0.dev4.data}/data/vgscli/vault-template.yaml +0 -0
  47. {vgs_cli-1.36.0.dev2.data → vgs_cli-1.36.0.dev4.data}/data/vgscli/vgs-cli.yaml +0 -0
  48. {vgs_cli-1.36.0.dev2.dist-info → vgs_cli-1.36.0.dev4.dist-info}/WHEEL +0 -0
  49. {vgs_cli-1.36.0.dev2.dist-info → vgs_cli-1.36.0.dev4.dist-info}/entry_points.txt +0 -0
  50. {vgs_cli-1.36.0.dev2.dist-info → vgs_cli-1.36.0.dev4.dist-info}/licenses/LICENSE +0 -0
  51. {vgs_cli-1.36.0.dev2.dist-info → vgs_cli-1.36.0.dev4.dist-info}/top_level.txt +0 -0
@@ -39,6 +39,18 @@ properties:
39
39
  "$ref": "#/definitions/enrollmentSettings"
40
40
  networkTokens:
41
41
  "$ref": "#/definitions/enrollmentSettings"
42
+ cardStorage:
43
+ type: object
44
+ properties:
45
+ deduplication:
46
+ type: string
47
+ enum:
48
+ - ENABLED
49
+ - DISABLED
50
+ panAliasFormat:
51
+ type: string
52
+ minLength: 1
53
+ additionalProperties: false
42
54
  additionalProperties: false
43
55
  required:
44
56
  - name
@@ -26,3 +26,8 @@ data:
26
26
  mastercard: manual
27
27
  amex: manual
28
28
  discover: manual
29
+ # Card storage behavior.
30
+ cardStorage:
31
+ deduplication: DISABLED
32
+ # A backend-supported PAN alias format.
33
+ panAliasFormat: UUID
@@ -139,6 +139,10 @@ Input:focus, TextArea:focus {
139
139
  color: $text-muted;
140
140
  }
141
141
 
142
+ #section-tabs.credential-details {
143
+ height: auto;
144
+ }
145
+
142
146
  #section-tabs:focus {
143
147
  background-tint: $primary 6%;
144
148
  }
@@ -173,6 +177,12 @@ Screen.home #content {
173
177
  padding: 1 3 0 3;
174
178
  }
175
179
 
180
+ Screen.home #content-scroll {
181
+ /* The intro is decorative: when the command palette takes vertical space,
182
+ clip it instead of making the logo region independently scrollable. */
183
+ overflow-y: hidden;
184
+ }
185
+
176
186
  .title, .dialog-title {
177
187
  text-style: bold;
178
188
  color: $primary;
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vgs-cli
3
- Version: 1.36.0.dev2
3
+ Version: 1.36.0.dev4
4
4
  Summary: VGS Client
5
5
  Home-page: https://github.com/verygoodsecurity/vgs-cli
6
6
  Author: Very Good Security
@@ -60,7 +60,6 @@ Command Line Tool for programmatic configurations on VGS.
60
60
  - [Installation](#installation)
61
61
  - [PyPI](#pypi)
62
62
  - [Run](#run)
63
- - [Try the Console feature branch](#try-the-console-feature-branch)
64
63
  - [Running in Docker](#running-in-docker)
65
64
  - [AI agent skill](#ai-agent-skill)
66
65
  - [Commands](#commands)
@@ -73,6 +72,7 @@ Command Line Tool for programmatic configurations on VGS.
73
72
  - [Service accounts](#service-accounts)
74
73
  - [Certificates](#certificates)
75
74
  - [Automation with VGS CLI](#automation-with-vgs-cli)
75
+ - [VGS CLI Console](#vgs-cli-console)
76
76
  - [Telemetry](#telemetry)
77
77
 
78
78
  ## Requirements
@@ -96,45 +96,6 @@ Verify the installation:
96
96
  vgs --version
97
97
  ```
98
98
 
99
- ## Try the Console feature branch
100
-
101
- After the feature branch is available in an existing repository checkout,
102
- switch to it and prepare the local Python environment:
103
-
104
- ```bash
105
- git switch feature/cli-ui
106
- scripts/dev.sh setup
107
- ```
108
-
109
- Launch the feature with an authorized VGS account:
110
-
111
- ```bash
112
- scripts/dev.sh cli console
113
- ```
114
-
115
- In the Console:
116
-
117
- 1. Complete browser authentication and select a SANDBOX context.
118
- 2. Open **Organization**, select **Tenants**, then choose **Create tenant**.
119
- 3. Enter a unique tenant name and complete one of the CMP, HTTP, SFTP, or
120
- no-use-case paths.
121
- 4. Review the retained answers before selecting **Create tenant**. This action
122
- creates real SANDBOX resources.
123
- 5. Confirm that the completed tenant becomes the active Console context. For an
124
- HTTP use case, review the separate route draft before submitting it. SFTP
125
- route configuration remains a separate later step. Every SANDBOX tenant
126
- created by the CLI includes the standard CLI-managed Collect Form.
127
-
128
- To try **Import tenant**, generate a local template, replace its example name
129
- and organization ID, then select it with the Console's native file picker:
130
-
131
- ```bash
132
- scripts/dev.sh cli generate tenant > /tmp/vgs-cli-tenant.yaml
133
- ```
134
-
135
- Keep `environment: SANDBOX`; the Console rejects LIVE tenant imports. Do not
136
- commit generated tenant files, credentials, tokens, or command output.
137
-
138
99
  ## Running in Docker
139
100
 
140
101
  Check our [official documentation](https://docs.verygoodsecurity.com/vault/developer-tools/vgs-cli/docker).
@@ -215,8 +176,8 @@ access. The CLI masks generated webhook secrets in its output.
215
176
 
216
177
  | Command | Purpose |
217
178
  | --- | --- |
218
- | `vgs generate route --protocol http` | Generate an HTTP route template. |
219
- | `vgs generate route --protocol sftp` | Generate an SFTP route template. |
179
+ | `vgs generate route --protocol http > http-route.yaml` | Generate an HTTP route template. |
180
+ | `vgs generate route --protocol sftp > sftp-route.yaml` | Generate an SFTP route template. |
220
181
  | `vgs get routes -T <TENANT_ID>` | List tenant routes. |
221
182
  | `vgs apply routes -T <TENANT_ID> -f <FILE>` | Apply tenant routes. |
222
183
  | `vgs delete routes -T <TENANT_ID> <ROUTE_ID>` | Delete one tenant route. |
@@ -237,10 +198,23 @@ access. The CLI masks generated webhook secrets in its output.
237
198
  | Command | Purpose |
238
199
  | --- | --- |
239
200
  | `vgs get access-credentials -T <TENANT_ID>` | List tenant access credentials. |
240
- | `vgs generate access-credentials -T <TENANT_ID>` | Generate tenant access credentials. |
201
+ | `vgs generate access-credentials -T <TENANT_ID>` | Generate tenant access credentials. Capture the output securely as shown below. |
241
202
  | `vgs logs access -T <TENANT_ID>` | View tenant access logs. |
242
203
  | `vgs logs operations -T <TENANT_ID> -R <REQUEST_ID>` | View request operation logs. |
243
204
 
205
+ Access-credential generation is a live mutation that returns secret material.
206
+ Write it to a new, approved absolute path outside version control with
207
+ owner-only permissions, and do not display or inspect it in shared logs:
208
+
209
+ ```bash
210
+ (
211
+ umask 077
212
+ set -o noclobber
213
+ vgs generate access-credentials -T <TENANT_ID> \
214
+ > /absolute/secure/new-access-credentials.yaml
215
+ )
216
+ ```
217
+
244
218
  ### Service accounts
245
219
 
246
220
  Generate a service-account resource and save the YAML so you can review it
@@ -288,6 +262,29 @@ for the full workflow.
288
262
 
289
263
  If you want to use the VGS CLI for automation, create a [service account](https://docs.verygoodsecurity.com/vault/developer-tools/vgs-cli/service-account).
290
264
 
265
+ ## VGS CLI Console
266
+
267
+ VGS CLI Console is a keyboard-first interactive workspace for managing VGS
268
+ resources in SANDBOX tenants.
269
+
270
+ ![VGS CLI Console](docs/images/vgs-cli-console.png)
271
+
272
+ Launch it from an installed VGS CLI:
273
+
274
+ ```bash
275
+ vgs console
276
+ ```
277
+
278
+ In the Console:
279
+
280
+ 1. Complete browser authentication and select a SANDBOX context.
281
+ 2. Open **Organization**, select **Tenants**, then choose **Create tenant**.
282
+ 3. Enter a unique tenant name and complete one of the CMP, HTTP, SFTP, or
283
+ no-use-case paths.
284
+ 4. Review the retained answers before selecting **Create tenant**. This action
285
+ creates real SANDBOX resources.
286
+ 5. Confirm that the completed tenant becomes the active Console context.
287
+
291
288
  ## Telemetry
292
289
 
293
290
  VGS CLI collects limited usage analytics to help VGS understand how the CLI is
@@ -1,30 +1,30 @@
1
- vgs_cli-1.36.0.dev2.data/data/vgscli/collect-form-api-schema.yaml,sha256=THuJbLUo7LOr0c1JUo3FPJEc9Jvde59K4JjdlkVF3hw,1246
2
- vgs_cli-1.36.0.dev2.data/data/vgscli/collect-form-schema.yaml,sha256=vHAN6_Gsg14CeSL41sHEQgboYF-CHF2RaNw72aJ3W8o,1337
3
- vgs_cli-1.36.0.dev2.data/data/vgscli/console-route-schema.yaml,sha256=hKME9kKILXFWkf-zwbAAWwMoXZWnzFHG37_51SqPKKw,1305
4
- vgs_cli-1.36.0.dev2.data/data/vgscli/credentials-admin.yaml,sha256=acyLd54Cp7l2fpugfjVfYh07-MIE0BX-JVq4lHraE1s,869
5
- vgs_cli-1.36.0.dev2.data/data/vgscli/form-template.yaml,sha256=pY4gOd8jXJRohcpJYijBt4m5cPyHvEVlCBtHgs2AL8M,927
6
- vgs_cli-1.36.0.dev2.data/data/vgscli/http-route-template.yaml,sha256=vGHvBXA_6pwFtH1vVRWKiwxb4sahzuLvpqGAlavrStc,1085
7
- vgs_cli-1.36.0.dev2.data/data/vgscli/notification-integration-schema.yaml,sha256=1qHzS5ZxlhTdrDab6-qJhszwu7cpith2HleX3uAO_4E,1837
8
- vgs_cli-1.36.0.dev2.data/data/vgscli/notification-template.yaml,sha256=hr36msbrgiTjWligLHVDHMmO49QDzjTwBSLYoBw3WQE,1288
9
- vgs_cli-1.36.0.dev2.data/data/vgscli/public-credential-collect.yaml,sha256=CiorC-6TMx7M0TI8DHmoRSfVKDpOom2wIr_ilwmHQNA,696
10
- vgs_cli-1.36.0.dev2.data/data/vgscli/read-credentials-no-pci.yaml,sha256=_kWRne_ARh8v7A_jHG08gwgPG6NqZhrDRyq6L-ULs2M,769
11
- vgs_cli-1.36.0.dev2.data/data/vgscli/read-credentials-with-pci.yaml,sha256=jWXgFdcqZYisakAt9COM6cjf2-x_Q4eidDLaUh8CZOk,796
12
- vgs_cli-1.36.0.dev2.data/data/vgscli/service-account-schema.yaml,sha256=L1pjNXgnks15N1wNgf_1GmGcOvxn0nu49v7ersUjFno,1090
13
- vgs_cli-1.36.0.dev2.data/data/vgscli/sftp-route-template.yaml,sha256=zkT6lIVDgVyzLKgZ8QnyJJooy2egZk1cQthdjan_JrM,853
14
- vgs_cli-1.36.0.dev2.data/data/vgscli/tenant-schema.yaml,sha256=gBO7xVe2qXSymG0B_45hC11X5nm_jCCAH4Yjs-sbC8g,1457
15
- vgs_cli-1.36.0.dev2.data/data/vgscli/tenant-template.yaml,sha256=F0wIBkC2dFJUNeJet-FzPX3qrLMHcGIaJvhsDzzAOCc,765
16
- vgs_cli-1.36.0.dev2.data/data/vgscli/theme.tcss,sha256=01k7tUJrLaAxfdkFGvlh20JrUCaFE3IZOJU1Wxmr4io,7523
17
- vgs_cli-1.36.0.dev2.data/data/vgscli/vault-resources.yaml,sha256=95CCxQher3MBQq96bvjZviNgo1rgv_NhCtI8X-oxIpA,26335
18
- vgs_cli-1.36.0.dev2.data/data/vgscli/vault-schema.yaml,sha256=a-wW7X8RyHr-669wtOZrlxlIfeQVtx8EUfA-3vpYytk,637
19
- vgs_cli-1.36.0.dev2.data/data/vgscli/vault-template.yaml,sha256=IlDisL3H5LXUDMkhUaouKMarRdu0-pJxpTz8ij_lp_M,383
20
- vgs_cli-1.36.0.dev2.data/data/vgscli/vgs-cli.yaml,sha256=5gCjjloyepaKI6zZfDLeUEWxuRExI-dGJI9RO3omP2k,484
21
- vgs_cli-1.36.0.dev2.dist-info/licenses/LICENSE,sha256=NwSyzgDYdzv6O2ns2C6UODGI8LN1VnVe_FPTnWS4eXY,1082
1
+ vgs_cli-1.36.0.dev4.data/data/vgscli/collect-form-api-schema.yaml,sha256=THuJbLUo7LOr0c1JUo3FPJEc9Jvde59K4JjdlkVF3hw,1246
2
+ vgs_cli-1.36.0.dev4.data/data/vgscli/collect-form-schema.yaml,sha256=vHAN6_Gsg14CeSL41sHEQgboYF-CHF2RaNw72aJ3W8o,1337
3
+ vgs_cli-1.36.0.dev4.data/data/vgscli/console-route-schema.yaml,sha256=hKME9kKILXFWkf-zwbAAWwMoXZWnzFHG37_51SqPKKw,1305
4
+ vgs_cli-1.36.0.dev4.data/data/vgscli/credentials-admin.yaml,sha256=acyLd54Cp7l2fpugfjVfYh07-MIE0BX-JVq4lHraE1s,869
5
+ vgs_cli-1.36.0.dev4.data/data/vgscli/form-template.yaml,sha256=pY4gOd8jXJRohcpJYijBt4m5cPyHvEVlCBtHgs2AL8M,927
6
+ vgs_cli-1.36.0.dev4.data/data/vgscli/http-route-template.yaml,sha256=vGHvBXA_6pwFtH1vVRWKiwxb4sahzuLvpqGAlavrStc,1085
7
+ vgs_cli-1.36.0.dev4.data/data/vgscli/notification-integration-schema.yaml,sha256=1qHzS5ZxlhTdrDab6-qJhszwu7cpith2HleX3uAO_4E,1837
8
+ vgs_cli-1.36.0.dev4.data/data/vgscli/notification-template.yaml,sha256=hr36msbrgiTjWligLHVDHMmO49QDzjTwBSLYoBw3WQE,1288
9
+ vgs_cli-1.36.0.dev4.data/data/vgscli/public-credential-collect.yaml,sha256=CiorC-6TMx7M0TI8DHmoRSfVKDpOom2wIr_ilwmHQNA,696
10
+ vgs_cli-1.36.0.dev4.data/data/vgscli/read-credentials-no-pci.yaml,sha256=_kWRne_ARh8v7A_jHG08gwgPG6NqZhrDRyq6L-ULs2M,769
11
+ vgs_cli-1.36.0.dev4.data/data/vgscli/read-credentials-with-pci.yaml,sha256=jWXgFdcqZYisakAt9COM6cjf2-x_Q4eidDLaUh8CZOk,796
12
+ vgs_cli-1.36.0.dev4.data/data/vgscli/service-account-schema.yaml,sha256=L1pjNXgnks15N1wNgf_1GmGcOvxn0nu49v7ersUjFno,1090
13
+ vgs_cli-1.36.0.dev4.data/data/vgscli/sftp-route-template.yaml,sha256=zkT6lIVDgVyzLKgZ8QnyJJooy2egZk1cQthdjan_JrM,853
14
+ vgs_cli-1.36.0.dev4.data/data/vgscli/tenant-schema.yaml,sha256=xqFEnG6Pcxj3EFsW8URNQexkTo6d6SQK0cMtqsAS5x8,1794
15
+ vgs_cli-1.36.0.dev4.data/data/vgscli/tenant-template.yaml,sha256=ucEV4p2cZ1G43nh1Mt8dcNH4-xtrP9C1XW2LjVM5xD4,914
16
+ vgs_cli-1.36.0.dev4.data/data/vgscli/theme.tcss,sha256=3J_y9kF-sb2tgiqCBZmhJeQrV3Tt9Ac1OB-VOM5r7Tw,7793
17
+ vgs_cli-1.36.0.dev4.data/data/vgscli/vault-resources.yaml,sha256=95CCxQher3MBQq96bvjZviNgo1rgv_NhCtI8X-oxIpA,26335
18
+ vgs_cli-1.36.0.dev4.data/data/vgscli/vault-schema.yaml,sha256=a-wW7X8RyHr-669wtOZrlxlIfeQVtx8EUfA-3vpYytk,637
19
+ vgs_cli-1.36.0.dev4.data/data/vgscli/vault-template.yaml,sha256=IlDisL3H5LXUDMkhUaouKMarRdu0-pJxpTz8ij_lp_M,383
20
+ vgs_cli-1.36.0.dev4.data/data/vgscli/vgs-cli.yaml,sha256=5gCjjloyepaKI6zZfDLeUEWxuRExI-dGJI9RO3omP2k,484
21
+ vgs_cli-1.36.0.dev4.dist-info/licenses/LICENSE,sha256=NwSyzgDYdzv6O2ns2C6UODGI8LN1VnVe_FPTnWS4eXY,1082
22
22
  vgscli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
- vgscli/_version.py,sha256=lf6GJiUCDciREhi6VBPysryXHiAF5NYv7g3PUPnROKE,1681
23
+ vgscli/_version.py,sha256=6Zf9PhKCstgjRVk3Vr69F0wD0btzFri2Yiz3QBNQJcc,1681
24
24
  vgscli/access_logs.py,sha256=G0GjlLjWiC-N6OzK6-RCvWddcVGQlLCLAcyO9pLWIOM,1928
25
25
  vgscli/audits_api.py,sha256=AaF5Go019TOerBlQzygwMeOxeW9vPPJPgxa95kttF-M,3215
26
26
  vgscli/auth.py,sha256=vdUZ12nqtefIuSHNmwCFvxoqwS3m6ZP5TqLZFNwKnSU,2104
27
- vgscli/auth_server.py,sha256=2TkXsPAExsG8rRFKY34k9BhVxmdHxZ5ov6JXJpZp_rs,4878
27
+ vgscli/auth_server.py,sha256=J12vthy2FhOr4Kfyp1waxu3bFErV_kXAycE8rcBKYW8,4993
28
28
  vgscli/auth_utils.py,sha256=aC1VI0dFdFeupLS9Okz4uDz-wHhhFabqiLUg2R5vO2s,600
29
29
  vgscli/callback_server.py,sha256=yOB9YuAy1JcpMcsvuBQmF3EB1qQND-uiirAmbAjrulY,1533
30
30
  vgscli/calm_api.py,sha256=5ZZhJUCuA2E5X670L-EkB_mL2kqHPrYy-ca6WtwTacg,1384
@@ -44,10 +44,10 @@ vgscli/keyring_token_util.py,sha256=cnR72-0AInzujUsIwHoXwPbgprbkllgAXN-AAI3qsPM,
44
44
  vgscli/notifications.py,sha256=6D8HFDEl3X4V0V9fYZT-9nWYe2KYVahfhRLMF0pbh4I,6252
45
45
  vgscli/notifications_api.py,sha256=1EXmRb2fOJrU1QOAZ6gmq8yMjBLhNZGSVs3kRtD2Dfw,2342
46
46
  vgscli/payment_accounts_api.py,sha256=wF6K3m7nlKtPmqO9RCpmGFSXYHWtwfhXqNfgI1IGqFI,1665
47
- vgscli/recovery_journal.py,sha256=FwDlu52YLvVRaQSqKX_xyUx48DRyez6mGOtTFbeu2b0,5485
47
+ vgscli/payment_credentials_api.py,sha256=Gwz5tLIS1gRc2Hzi877_mynznNOKEGF-VoKzxqkj-mM,2169
48
48
  vgscli/secure_store.py,sha256=wRLQv6qrTp1PJkb5N1zSmv2bA5NSJjEhqMNMFMoSbiY,3625
49
49
  vgscli/telemetry.py,sha256=BFkAe0Bxm96xiffIOsfPY6Q6Lv5xueJBIwGfLmctXRE,25755
50
- vgscli/tenant_configuration.py,sha256=iC33f2lBHDEL4oHPvdlWp_w--u2x_nWOb86jTHumDLg,5881
50
+ vgscli/tenant_configuration.py,sha256=mX6DUFNOr8Rnppzpw6SMV_FADLWm8w543_jYvipOxdE,6404
51
51
  vgscli/tenant_creation.py,sha256=es8to2-crpu0k5UBzWd75I0BSNjInysjuDePy0z9xsk,22461
52
52
  vgscli/tenant_provisioning_api.py,sha256=-mQcSECgWG23LKczu1B9J1d7Bb6ZA6lkpr9RegJiiLg,1203
53
53
  vgscli/testing.py,sha256=MLrsvy3mEwvjtqyuG0UjwEX-rDkbWUo52aXvu2H2sTk,1437
@@ -65,38 +65,40 @@ vgscli/cli/types/__init__.py,sha256=a-P-SoGHpLzMg7CL1hhg5x_nf6sHq0qAuGm_AtIITmw,
65
65
  vgscli/cli/types/resource_id.py,sha256=7JILR-KjoVGQDHB40tXJfTcU53iR8wM9Zr24fY5le3o,1172
66
66
  vgscli/cli/types/variable.py,sha256=IVcszPoWmTjeo_evDsLN06LuUZGTLL-wcZCVfBNBP8I,414
67
67
  vgscli/console/__init__.py,sha256=X48mjIkHuvVqtCrsN4vJ7CubJrL4xAE678jm1AFSm1o,44
68
- vgscli/console/app.py,sha256=z01FLQd6JWsoIF5ePynBKsq00RonslDO3PktMLF2WBw,90717
69
- vgscli/console/auth.py,sha256=xp2JmXgQGpa3sCrF49qA3tWvOrd-RvWVjkrOzCvABRk,1246
70
- vgscli/console/backend.py,sha256=P_Oj72N6UDrI-YXZg9FSQp721tY11W4kObE4VzrgQW4,10904
71
- vgscli/console/bootstrap.py,sha256=TY5cz8zzEuSIEiocxitNBIGHQV_Ugdp2Z_6joSgtDP4,733
72
- vgscli/console/commands.py,sha256=0lunvZfyj--BUhGG78u1gNE63eQzxCZXckdVEI5MCk0,3864
68
+ vgscli/console/app.py,sha256=sYolT_MqEFA6f7ClILmpvo42-DCy7mKTVrhzYvnrp1s,104685
69
+ vgscli/console/auth.py,sha256=PpIvuFCxTLSHiDmmOSU67nbsdru78pT4cmaD_TmBbU0,1517
70
+ vgscli/console/backend.py,sha256=DHelXVKwySaVQUgU6qMpmoKmrzgKf1cqttIAnVU-xvw,13010
71
+ vgscli/console/bootstrap.py,sha256=R75enSa2MrAJ4jWl-IDvpansglIa02R28N7CfKCh3Vs,1121
72
+ vgscli/console/capability_screen.py,sha256=QiXPDQlzRW250-yYq2XqKbrIhezE_Gf_gfe85_iRGU0,7324
73
+ vgscli/console/commands.py,sha256=htqTNZF9z1O9OSvdPQIybOfw1eHRuMCqxUOP1mWwosc,3782
73
74
  vgscli/console/context.py,sha256=TgDgsqt52pbSeLsTZ-VX6PHuQFJTSUSrl4y2I36tquk,1719
74
75
  vgscli/console/form_editor.py,sha256=o5u4aUWWOOaCAyI7Djco0yLR4po2bHLapyVwbMbHFNk,5268
75
76
  vgscli/console/intro.py,sha256=cZ93gvP0czRpoGbu9HB1QGrJYJ6DMtvX_EVlTg9DEvQ,5348
76
- vgscli/console/mutation_screen.py,sha256=h1hTUDYqkCUn-8WCqadcXceV0fwzhd_Gkt6tMi2Y7Z0,28051
77
+ vgscli/console/mutation_screen.py,sha256=7uhUS7t-53i-bTa9YKKHnWfJV6c2oQpv7YNRqXF1h9c,24819
77
78
  vgscli/console/responsive.py,sha256=C1jVLg_kunp8maeQl9W2KumDuKWFev2iL-ZXiQvyN4w,688
78
- vgscli/console/tenant_onboarding_screen.py,sha256=Px92XmhbL373XbdEdj9xmvvEJ00wbagGOEMcXWnkRig,25999
79
- vgscli/console/theme.tcss,sha256=01k7tUJrLaAxfdkFGvlh20JrUCaFE3IZOJU1Wxmr4io,7523
79
+ vgscli/console/tenant_onboarding_screen.py,sha256=7tiXgqkRRBdrkhQBEiJU91lopGs_LYs701RakHrxhts,24155
80
+ vgscli/console/theme.tcss,sha256=3J_y9kF-sb2tgiqCBZmhJeQrV3Tt9Ac1OB-VOM5r7Tw,7793
80
81
  vgscli/console/workflows/__init__.py,sha256=NGtIiPpn-y2EQKXlt40G4nLlLZ1y9se_KewknReDiKI,212
81
- vgscli/console/workflows/forms.py,sha256=ob7GpX8Ig7h6WFaAzW663Lge8RVEGbtwGa4Z3N_AZj0,1310
82
- vgscli/console/workflows/mutation.py,sha256=UG4hXewEvMEXusCuusi47FRoXE_mKJYWdxtwfuj2e10,8628
83
- vgscli/console/workflows/routes.py,sha256=kliVIEj9KzznRZ5KRkA91vzsihnq9UpCv3k_2zavmXw,1499
84
- vgscli/console/workflows/tenant.py,sha256=8sdsaKKPiThQLhwG123g6F8f4xUWdYZzJcsVewpFdx8,7997
82
+ vgscli/console/workflows/forms.py,sha256=_sxRraE_jVg67chsYA4txdcBZPqjxReIPQy5XjqVJVE,201
83
+ vgscli/console/workflows/mutation.py,sha256=1fdkKTrj-sg-IIAVVuPNLHIU_kQCwnWhDFnY9evxCFQ,6956
84
+ vgscli/console/workflows/routes.py,sha256=Pz-wg7nkj2BACyDLpS-52TQnoU52LJ0rZLmOCMxdG-k,205
85
+ vgscli/console/workflows/tenant.py,sha256=dHH7iv_oaGZcSXOoSQpCc8V1OVsuGtv3ujomYXCwCKo,4167
85
86
  vgscli/operations/__init__.py,sha256=o5WOygn8wXdVcpKXqVL8kLDc0MS1jZumb1yGECiupiw,74
86
87
  vgscli/operations/context.py,sha256=jA8BToRVCx-ZCsEV05tfENuTaYGzaw0acjokuCVxpbQ,1538
87
88
  vgscli/operations/documents.py,sha256=sfHmI4uyDH1weDFkLeF4QmwDjzp0Op_XA8kYQ5RnDtU,827
88
- vgscli/operations/errors.py,sha256=4Erk-RfM6kQBT1R7u6IlXW1dkZlmbPFEGK2PvDLhBrg,2752
89
+ vgscli/operations/errors.py,sha256=4MQN71x7COJSAz7wEYd8Wxq2D5spT8VaGM8eukMbncE,3744
89
90
  vgscli/operations/form_documents.py,sha256=IZucBFeGLCzsXS_NukA_8fmHycjDq-dpC_I8kj8ZnXU,3695
90
- vgscli/operations/forms.py,sha256=cN5oJLvPDDNqoiYP8d-N8q5-kJ8Awo53YoRSlWikrsg,5585
91
+ vgscli/operations/forms.py,sha256=ocIenT2xlE-TtmrCP-q4Bfmz_uX9JnjwZzz4nkGiiJQ,5184
91
92
  vgscli/operations/logs.py,sha256=69gIjPhjjtLcoZFITUEYXnMMaRQbE5hEGsMgeNoGMfg,5956
92
- vgscli/operations/models.py,sha256=jZXr0BEY2EsNrNkIgm-awsD8ld5qdroGupZsfzB8Rrw,1151
93
- vgscli/operations/routes.py,sha256=HgVbxYufi2Em0odqG3fM-SyBY8j_kQmUBiXwnLwRU58,8165
93
+ vgscli/operations/models.py,sha256=NoyAIe3iC56t8f0u77rJC5TsgnNKhO1lD3TDI9jKXi8,1396
94
+ vgscli/operations/payment_credentials.py,sha256=b0iH68UeAdfUpR_B4Da2Wpj-lwcNsEEH11Xrvb-HPw0,10798
95
+ vgscli/operations/routes.py,sha256=oJ0EbG_M9mjXex_aBA2TNXO7XVbp7UD1jkIO2G_YyrU,7309
94
96
  vgscli/operations/tenant_details.py,sha256=vtzxYjUFyjToweKf3ZqdBMB14P87USpqNzxWW1SuL_U,3364
95
97
  vgscli/resource-templates/form-template.yaml,sha256=pY4gOd8jXJRohcpJYijBt4m5cPyHvEVlCBtHgs2AL8M,927
96
98
  vgscli/resource-templates/http-route-template.yaml,sha256=vGHvBXA_6pwFtH1vVRWKiwxb4sahzuLvpqGAlavrStc,1085
97
99
  vgscli/resource-templates/notification-template.yaml,sha256=hr36msbrgiTjWligLHVDHMmO49QDzjTwBSLYoBw3WQE,1288
98
100
  vgscli/resource-templates/sftp-route-template.yaml,sha256=zkT6lIVDgVyzLKgZ8QnyJJooy2egZk1cQthdjan_JrM,853
99
- vgscli/resource-templates/tenant-template.yaml,sha256=F0wIBkC2dFJUNeJet-FzPX3qrLMHcGIaJvhsDzzAOCc,765
101
+ vgscli/resource-templates/tenant-template.yaml,sha256=ucEV4p2cZ1G43nh1Mt8dcNH4-xtrP9C1XW2LjVM5xD4,914
100
102
  vgscli/resource-templates/vault-template.yaml,sha256=IlDisL3H5LXUDMkhUaouKMarRdu0-pJxpTz8ij_lp_M,383
101
103
  vgscli/resource-templates/service-account/credentials-admin.yaml,sha256=acyLd54Cp7l2fpugfjVfYh07-MIE0BX-JVq4lHraE1s,869
102
104
  vgscli/resource-templates/service-account/public-credential-collect.yaml,sha256=CiorC-6TMx7M0TI8DHmoRSfVKDpOom2wIr_ilwmHQNA,696
@@ -108,11 +110,11 @@ vgscli/validation-schemas/collect-form-schema.yaml,sha256=vHAN6_Gsg14CeSL41sHEQg
108
110
  vgscli/validation-schemas/console-route-schema.yaml,sha256=hKME9kKILXFWkf-zwbAAWwMoXZWnzFHG37_51SqPKKw,1305
109
111
  vgscli/validation-schemas/notification-integration-schema.yaml,sha256=1qHzS5ZxlhTdrDab6-qJhszwu7cpith2HleX3uAO_4E,1837
110
112
  vgscli/validation-schemas/service-account-schema.yaml,sha256=L1pjNXgnks15N1wNgf_1GmGcOvxn0nu49v7ersUjFno,1090
111
- vgscli/validation-schemas/tenant-schema.yaml,sha256=gBO7xVe2qXSymG0B_45hC11X5nm_jCCAH4Yjs-sbC8g,1457
113
+ vgscli/validation-schemas/tenant-schema.yaml,sha256=xqFEnG6Pcxj3EFsW8URNQexkTo6d6SQK0cMtqsAS5x8,1794
112
114
  vgscli/validation-schemas/vault-resources.yaml,sha256=95CCxQher3MBQq96bvjZviNgo1rgv_NhCtI8X-oxIpA,26335
113
115
  vgscli/validation-schemas/vault-schema.yaml,sha256=a-wW7X8RyHr-669wtOZrlxlIfeQVtx8EUfA-3vpYytk,637
114
- vgs_cli-1.36.0.dev2.dist-info/METADATA,sha256=vbDoPGhQ9Ef0L8QTvAClT3q6nGB_J5ly5YhpJVf1e4g,10681
115
- vgs_cli-1.36.0.dev2.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
116
- vgs_cli-1.36.0.dev2.dist-info/entry_points.txt,sha256=wCWhRQiMX4Ja6kkqJlYr8LbuiywpmXyyRAZPsau-_RY,39
117
- vgs_cli-1.36.0.dev2.dist-info/top_level.txt,sha256=gabTxCWMkl80q6ha_m-hs_1wQMfGntZcv5DEmkl8JEw,7
118
- vgs_cli-1.36.0.dev2.dist-info/RECORD,,
116
+ vgs_cli-1.36.0.dev4.dist-info/METADATA,sha256=xdFahDPlESLsrx6QAuQS2mVJCRz-LCYJY8yhxnvp-sk,10422
117
+ vgs_cli-1.36.0.dev4.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
118
+ vgs_cli-1.36.0.dev4.dist-info/entry_points.txt,sha256=wCWhRQiMX4Ja6kkqJlYr8LbuiywpmXyyRAZPsau-_RY,39
119
+ vgs_cli-1.36.0.dev4.dist-info/top_level.txt,sha256=gabTxCWMkl80q6ha_m-hs_1wQMfGntZcv5DEmkl8JEw,7
120
+ vgs_cli-1.36.0.dev4.dist-info/RECORD,,
vgscli/_version.py CHANGED
@@ -6,7 +6,7 @@ from packaging.version import InvalidVersion, Version
6
6
 
7
7
  from vgscli.text import bold, green
8
8
 
9
- __version__ = "1.36.0.dev2"
9
+ __version__ = "1.36.0.dev4"
10
10
 
11
11
 
12
12
  # noinspection PyBroadException
vgscli/auth_server.py CHANGED
@@ -109,11 +109,12 @@ class AuthServer:
109
109
  )
110
110
 
111
111
  def refresh_authentication(self):
112
- self.token_util.put_tokens(
113
- auth_api.refresh_token(
114
- self.auth_api, refresh_token=self.token_util.get_refresh_token()
115
- ).body
112
+ refresh_token = self.token_util.get_refresh_token()
113
+ tokens = dict(
114
+ auth_api.refresh_token(self.auth_api, refresh_token=refresh_token).body
116
115
  )
116
+ tokens.setdefault(KeyringTokenUtil.REFRESH_TOKEN_KEY, refresh_token)
117
+ self.token_util.put_tokens(tokens)
117
118
 
118
119
  def retrieve_access_token(self):
119
120
  callback_url = self.__get_host() + self.CALLBACK_PATH