devnomads-cli 0.5.4__tar.gz → 0.5.8__tar.gz

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 (20) hide show
  1. {devnomads_cli-0.5.4 → devnomads_cli-0.5.8}/PKG-INFO +48 -7
  2. {devnomads_cli-0.5.4 → devnomads_cli-0.5.8}/README.md +46 -5
  3. {devnomads_cli-0.5.4 → devnomads_cli-0.5.8}/devnomads_cli.egg-info/PKG-INFO +48 -7
  4. {devnomads_cli-0.5.4 → devnomads_cli-0.5.8}/devnomads_cli.egg-info/requires.txt +1 -1
  5. {devnomads_cli-0.5.4 → devnomads_cli-0.5.8}/dncli.py +715 -114
  6. {devnomads_cli-0.5.4 → devnomads_cli-0.5.8}/pyproject.toml +2 -2
  7. {devnomads_cli-0.5.4 → devnomads_cli-0.5.8}/tests/test_cert.py +129 -2
  8. {devnomads_cli-0.5.4 → devnomads_cli-0.5.8}/tests/test_cli.py +74 -19
  9. {devnomads_cli-0.5.4 → devnomads_cli-0.5.8}/tests/test_generated_cli.py +83 -8
  10. {devnomads_cli-0.5.4 → devnomads_cli-0.5.8}/tests/test_helpers.py +24 -0
  11. {devnomads_cli-0.5.4 → devnomads_cli-0.5.8}/tests/test_transfer.py +1 -1
  12. {devnomads_cli-0.5.4 → devnomads_cli-0.5.8}/LICENSE +0 -0
  13. {devnomads_cli-0.5.4 → devnomads_cli-0.5.8}/devnomads_cli.egg-info/SOURCES.txt +0 -0
  14. {devnomads_cli-0.5.4 → devnomads_cli-0.5.8}/devnomads_cli.egg-info/dependency_links.txt +0 -0
  15. {devnomads_cli-0.5.4 → devnomads_cli-0.5.8}/devnomads_cli.egg-info/entry_points.txt +0 -0
  16. {devnomads_cli-0.5.4 → devnomads_cli-0.5.8}/devnomads_cli.egg-info/top_level.txt +0 -0
  17. {devnomads_cli-0.5.4 → devnomads_cli-0.5.8}/setup.cfg +0 -0
  18. {devnomads_cli-0.5.4 → devnomads_cli-0.5.8}/tests/test_config.py +0 -0
  19. {devnomads_cli-0.5.4 → devnomads_cli-0.5.8}/tests/test_generate.py +0 -0
  20. {devnomads_cli-0.5.4 → devnomads_cli-0.5.8}/tests/test_hook.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: devnomads-cli
3
- Version: 0.5.4
3
+ Version: 0.5.8
4
4
  Summary: Manage your DevNomads services from the command line
5
5
  Author-email: DevNomads <support@devnomads.nl>
6
6
  License: MIT
@@ -11,7 +11,7 @@ Requires-Dist: typer>=0.12
11
11
  Requires-Dist: httpx>=0.27
12
12
  Requires-Dist: rich>=13
13
13
  Requires-Dist: cryptography>=42
14
- Requires-Dist: devnomads[acme]>=0.2.3
14
+ Requires-Dist: devnomads[acme]>=0.2.5
15
15
  Dynamic: license-file
16
16
 
17
17
  # dncli
@@ -111,10 +111,29 @@ export DN_PROFILE=acme
111
111
  ## Scripting
112
112
 
113
113
  Output is a human-readable table on a terminal and JSON when piped,
114
- so pipelines get parseable output without any flags; `--output
115
- json|table` forces either. Data goes to stdout, everything else
116
- (warnings, prompts, status messages) to stderr, so `dncli ... | jq .`
117
- is always safe.
114
+ so pipelines get parseable output without any flags; `--out
115
+ table|json|csv|tsv` forces a specific format. Data goes to stdout,
116
+ everything else (warnings, prompts, status messages) to stderr, so
117
+ `dncli ... | jq .` is always safe.
118
+
119
+ The `csv` and `tsv` formats use the same columns as the table view, so
120
+ `dncli servers list --out csv` is ready for a spreadsheet.
121
+
122
+ List tables show a focused set of columns: fields that are empty for
123
+ every row, and nested collections (a server's IPs, a container's
124
+ instances, a mailbox list) are left out of the overview. Use `<group>
125
+ show <id>` or `--out json` for the complete record.
126
+
127
+ To pick exactly the columns you want, pass `--columns` (`-c`) a
128
+ comma-separated list, e.g. `dncli services list -c entity,started_at`.
129
+ It applies to every format, projecting json and csv/tsv to just those
130
+ fields, and reports an error on an unknown column name.
131
+
132
+ Commands that take a service id also accept a unique entity name and
133
+ resolve it for you, so `dncli domains show example.com` works as well
134
+ as `dncli domains show 1234`. A purely numeric value is always treated
135
+ as an id; an entity that matches more than one service is rejected, so
136
+ pass the id when an entity is not unique.
118
137
 
119
138
  In CI and pipelines, skip the credentials file and pass the key via
120
139
  the environment:
@@ -149,11 +168,33 @@ progress.
149
168
  Keys are ECDSA P-384 by default. Pick another with `--key-type`
150
169
  (`ecdsa256`, `ecdsa384`, `ecdsa521`, `rsa2048`, `rsa4096`).
151
170
 
171
+ Let's Encrypt is the certificate authority by default. Pass
172
+ `--provider zerossl` to use ZeroSSL instead. ZeroSSL requires External
173
+ Account Binding credentials (create an EAB key pair in the ZeroSSL
174
+ dashboard under Developer > EAB Credentials), supplied with `--eab-kid`
175
+ and `--eab-hmac-key` or the `DN_ZEROSSL_EAB_KID` and
176
+ `DN_ZEROSSL_EAB_HMAC_KEY` environment variables:
177
+
178
+ ```sh
179
+ dncli cert issue example.com --provider zerossl \
180
+ --eab-kid <kid> --eab-hmac-key <hmac>
181
+ ```
182
+
183
+ `--staging` (the Let's Encrypt staging CA) applies only to the
184
+ letsencrypt provider. `cert renew` takes the same `--provider` and EAB
185
+ options.
186
+
187
+ Each CA gets its own ACME account: the key lives in
188
+ `~/.config/dncli/acme/` as `account.pem` for Let's Encrypt production
189
+ and `account-<provider>.pem` for ZeroSSL and the staging CA.
190
+
152
191
  Re-running `cert issue` is a no-op while the existing certificate is
153
192
  still valid for more than 21 days; pass `--force` to re-issue anyway.
154
193
 
155
194
  List what you have issued and re-export any of them - as a PEM bundle
156
- or a PKCS#12 (`.pfx`) file - without re-issuing:
195
+ or a PKCS#12 (`.pfx`) file - without re-issuing. `cert list` includes a
196
+ `provider` column showing the issuing CA (recorded at issue time, or
197
+ inferred from the certificate's issuer for older certificates):
157
198
 
158
199
  ```sh
159
200
  dncli cert list
@@ -95,10 +95,29 @@ export DN_PROFILE=acme
95
95
  ## Scripting
96
96
 
97
97
  Output is a human-readable table on a terminal and JSON when piped,
98
- so pipelines get parseable output without any flags; `--output
99
- json|table` forces either. Data goes to stdout, everything else
100
- (warnings, prompts, status messages) to stderr, so `dncli ... | jq .`
101
- is always safe.
98
+ so pipelines get parseable output without any flags; `--out
99
+ table|json|csv|tsv` forces a specific format. Data goes to stdout,
100
+ everything else (warnings, prompts, status messages) to stderr, so
101
+ `dncli ... | jq .` is always safe.
102
+
103
+ The `csv` and `tsv` formats use the same columns as the table view, so
104
+ `dncli servers list --out csv` is ready for a spreadsheet.
105
+
106
+ List tables show a focused set of columns: fields that are empty for
107
+ every row, and nested collections (a server's IPs, a container's
108
+ instances, a mailbox list) are left out of the overview. Use `<group>
109
+ show <id>` or `--out json` for the complete record.
110
+
111
+ To pick exactly the columns you want, pass `--columns` (`-c`) a
112
+ comma-separated list, e.g. `dncli services list -c entity,started_at`.
113
+ It applies to every format, projecting json and csv/tsv to just those
114
+ fields, and reports an error on an unknown column name.
115
+
116
+ Commands that take a service id also accept a unique entity name and
117
+ resolve it for you, so `dncli domains show example.com` works as well
118
+ as `dncli domains show 1234`. A purely numeric value is always treated
119
+ as an id; an entity that matches more than one service is rejected, so
120
+ pass the id when an entity is not unique.
102
121
 
103
122
  In CI and pipelines, skip the credentials file and pass the key via
104
123
  the environment:
@@ -133,11 +152,33 @@ progress.
133
152
  Keys are ECDSA P-384 by default. Pick another with `--key-type`
134
153
  (`ecdsa256`, `ecdsa384`, `ecdsa521`, `rsa2048`, `rsa4096`).
135
154
 
155
+ Let's Encrypt is the certificate authority by default. Pass
156
+ `--provider zerossl` to use ZeroSSL instead. ZeroSSL requires External
157
+ Account Binding credentials (create an EAB key pair in the ZeroSSL
158
+ dashboard under Developer > EAB Credentials), supplied with `--eab-kid`
159
+ and `--eab-hmac-key` or the `DN_ZEROSSL_EAB_KID` and
160
+ `DN_ZEROSSL_EAB_HMAC_KEY` environment variables:
161
+
162
+ ```sh
163
+ dncli cert issue example.com --provider zerossl \
164
+ --eab-kid <kid> --eab-hmac-key <hmac>
165
+ ```
166
+
167
+ `--staging` (the Let's Encrypt staging CA) applies only to the
168
+ letsencrypt provider. `cert renew` takes the same `--provider` and EAB
169
+ options.
170
+
171
+ Each CA gets its own ACME account: the key lives in
172
+ `~/.config/dncli/acme/` as `account.pem` for Let's Encrypt production
173
+ and `account-<provider>.pem` for ZeroSSL and the staging CA.
174
+
136
175
  Re-running `cert issue` is a no-op while the existing certificate is
137
176
  still valid for more than 21 days; pass `--force` to re-issue anyway.
138
177
 
139
178
  List what you have issued and re-export any of them - as a PEM bundle
140
- or a PKCS#12 (`.pfx`) file - without re-issuing:
179
+ or a PKCS#12 (`.pfx`) file - without re-issuing. `cert list` includes a
180
+ `provider` column showing the issuing CA (recorded at issue time, or
181
+ inferred from the certificate's issuer for older certificates):
141
182
 
142
183
  ```sh
143
184
  dncli cert list
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: devnomads-cli
3
- Version: 0.5.4
3
+ Version: 0.5.8
4
4
  Summary: Manage your DevNomads services from the command line
5
5
  Author-email: DevNomads <support@devnomads.nl>
6
6
  License: MIT
@@ -11,7 +11,7 @@ Requires-Dist: typer>=0.12
11
11
  Requires-Dist: httpx>=0.27
12
12
  Requires-Dist: rich>=13
13
13
  Requires-Dist: cryptography>=42
14
- Requires-Dist: devnomads[acme]>=0.2.3
14
+ Requires-Dist: devnomads[acme]>=0.2.5
15
15
  Dynamic: license-file
16
16
 
17
17
  # dncli
@@ -111,10 +111,29 @@ export DN_PROFILE=acme
111
111
  ## Scripting
112
112
 
113
113
  Output is a human-readable table on a terminal and JSON when piped,
114
- so pipelines get parseable output without any flags; `--output
115
- json|table` forces either. Data goes to stdout, everything else
116
- (warnings, prompts, status messages) to stderr, so `dncli ... | jq .`
117
- is always safe.
114
+ so pipelines get parseable output without any flags; `--out
115
+ table|json|csv|tsv` forces a specific format. Data goes to stdout,
116
+ everything else (warnings, prompts, status messages) to stderr, so
117
+ `dncli ... | jq .` is always safe.
118
+
119
+ The `csv` and `tsv` formats use the same columns as the table view, so
120
+ `dncli servers list --out csv` is ready for a spreadsheet.
121
+
122
+ List tables show a focused set of columns: fields that are empty for
123
+ every row, and nested collections (a server's IPs, a container's
124
+ instances, a mailbox list) are left out of the overview. Use `<group>
125
+ show <id>` or `--out json` for the complete record.
126
+
127
+ To pick exactly the columns you want, pass `--columns` (`-c`) a
128
+ comma-separated list, e.g. `dncli services list -c entity,started_at`.
129
+ It applies to every format, projecting json and csv/tsv to just those
130
+ fields, and reports an error on an unknown column name.
131
+
132
+ Commands that take a service id also accept a unique entity name and
133
+ resolve it for you, so `dncli domains show example.com` works as well
134
+ as `dncli domains show 1234`. A purely numeric value is always treated
135
+ as an id; an entity that matches more than one service is rejected, so
136
+ pass the id when an entity is not unique.
118
137
 
119
138
  In CI and pipelines, skip the credentials file and pass the key via
120
139
  the environment:
@@ -149,11 +168,33 @@ progress.
149
168
  Keys are ECDSA P-384 by default. Pick another with `--key-type`
150
169
  (`ecdsa256`, `ecdsa384`, `ecdsa521`, `rsa2048`, `rsa4096`).
151
170
 
171
+ Let's Encrypt is the certificate authority by default. Pass
172
+ `--provider zerossl` to use ZeroSSL instead. ZeroSSL requires External
173
+ Account Binding credentials (create an EAB key pair in the ZeroSSL
174
+ dashboard under Developer > EAB Credentials), supplied with `--eab-kid`
175
+ and `--eab-hmac-key` or the `DN_ZEROSSL_EAB_KID` and
176
+ `DN_ZEROSSL_EAB_HMAC_KEY` environment variables:
177
+
178
+ ```sh
179
+ dncli cert issue example.com --provider zerossl \
180
+ --eab-kid <kid> --eab-hmac-key <hmac>
181
+ ```
182
+
183
+ `--staging` (the Let's Encrypt staging CA) applies only to the
184
+ letsencrypt provider. `cert renew` takes the same `--provider` and EAB
185
+ options.
186
+
187
+ Each CA gets its own ACME account: the key lives in
188
+ `~/.config/dncli/acme/` as `account.pem` for Let's Encrypt production
189
+ and `account-<provider>.pem` for ZeroSSL and the staging CA.
190
+
152
191
  Re-running `cert issue` is a no-op while the existing certificate is
153
192
  still valid for more than 21 days; pass `--force` to re-issue anyway.
154
193
 
155
194
  List what you have issued and re-export any of them - as a PEM bundle
156
- or a PKCS#12 (`.pfx`) file - without re-issuing:
195
+ or a PKCS#12 (`.pfx`) file - without re-issuing. `cert list` includes a
196
+ `provider` column showing the issuing CA (recorded at issue time, or
197
+ inferred from the certificate's issuer for older certificates):
157
198
 
158
199
  ```sh
159
200
  dncli cert list
@@ -2,4 +2,4 @@ typer>=0.12
2
2
  httpx>=0.27
3
3
  rich>=13
4
4
  cryptography>=42
5
- devnomads[acme]>=0.2.3
5
+ devnomads[acme]>=0.2.5