leancpms-cli 0.1.1__tar.gz → 0.1.2__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: leancpms-cli
3
- Version: 0.1.1
3
+ Version: 0.1.2
4
4
  Summary: The cpms command alone: a client of a LeanCPMS instance's JSON API
5
5
  License-Expression: AGPL-3.0-or-later
6
6
  License-File: LICENSE
@@ -34,8 +34,8 @@ Until then, from a GitHub release (a tag `cli-v<version>`) or straight
34
34
  from the repository:
35
35
 
36
36
  ```bash
37
- gh release download cli-v0.1.1 --repo forsslund/leancpms --pattern '*.whl'
38
- uv tool install ./leancpms_cli-0.1.1-py3-none-any.whl
37
+ gh release download cli-v0.1.2 --repo forsslund/leancpms --pattern '*.whl'
38
+ uv tool install ./leancpms_cli-0.1.2-py3-none-any.whl
39
39
  # or
40
40
  uv tool install "git+https://github.com/forsslund/leancpms#subdirectory=cli"
41
41
  ```
@@ -194,7 +194,7 @@ Raise `version` in both `cli/pyproject.toml` and the root `pyproject.toml`
194
194
  (a test keeps them equal), then tag and push:
195
195
 
196
196
  ```bash
197
- git tag cli-v0.1.1 && git push origin cli-v0.1.1
197
+ git tag cli-v0.1.2 && git push origin cli-v0.1.2
198
198
  ```
199
199
 
200
200
  `.github/workflows/release-cli.yml` builds the wheel and sdist, smoke-tests
@@ -22,8 +22,8 @@ Until then, from a GitHub release (a tag `cli-v<version>`) or straight
22
22
  from the repository:
23
23
 
24
24
  ```bash
25
- gh release download cli-v0.1.1 --repo forsslund/leancpms --pattern '*.whl'
26
- uv tool install ./leancpms_cli-0.1.1-py3-none-any.whl
25
+ gh release download cli-v0.1.2 --repo forsslund/leancpms --pattern '*.whl'
26
+ uv tool install ./leancpms_cli-0.1.2-py3-none-any.whl
27
27
  # or
28
28
  uv tool install "git+https://github.com/forsslund/leancpms#subdirectory=cli"
29
29
  ```
@@ -182,7 +182,7 @@ Raise `version` in both `cli/pyproject.toml` and the root `pyproject.toml`
182
182
  (a test keeps them equal), then tag and push:
183
183
 
184
184
  ```bash
185
- git tag cli-v0.1.1 && git push origin cli-v0.1.1
185
+ git tag cli-v0.1.2 && git push origin cli-v0.1.2
186
186
  ```
187
187
 
188
188
  `.github/workflows/release-cli.yml` builds the wheel and sdist, smoke-tests
@@ -105,6 +105,17 @@ DriverHost = Annotated[
105
105
  ]
106
106
 
107
107
 
108
+ # A browser origin of the organization's own driver front end (architecture §3.1): https, a host and
109
+ # perhaps a port, nothing after it. http only for localhost, for development.
110
+ DriverOrigin = Annotated[
111
+ str,
112
+ StringConstraints(
113
+ max_length=300,
114
+ pattern=r"^(https://[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?(\.[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*|http://localhost)(:[0-9]{1,5})?$",
115
+ ),
116
+ ]
117
+
118
+
108
119
  class Organization(Strict):
109
120
  key: OrganizationKey
110
121
  name: str
@@ -120,11 +131,16 @@ class Organization(Strict):
120
131
  theme: Theme | None = None
121
132
  # The hosts on which this organization's driver pages are its own: `/` there lists its sites.
122
133
  driver_hosts: list[DriverHost] = []
134
+ # The organization's own driver front ends, on domains of its own: they may call the driver API's
135
+ # start and session endpoints from a browser, and payment may return to them (architecture §3.1).
136
+ driver_origins: list[DriverOrigin] = []
123
137
 
124
138
  @model_validator(mode="after")
125
139
  def _unique_hosts(self): # type: ignore[no-untyped-def]
126
140
  if len(set(self.driver_hosts)) != len(self.driver_hosts):
127
141
  raise ValueError("driver_hosts: a host is listed twice")
142
+ if len(set(self.driver_origins)) != len(self.driver_origins):
143
+ raise ValueError("driver_origins: an origin is listed twice")
128
144
  return self
129
145
 
130
146
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "leancpms-cli"
3
- version = "0.1.1"
3
+ version = "0.1.2"
4
4
  description = "The cpms command alone: a client of a LeanCPMS instance's JSON API"
5
5
  readme = "README.md"
6
6
  license = "AGPL-3.0-or-later"
File without changes
File without changes