laniakea-api-server 0.3.1__tar.gz → 0.3.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.
Files changed (24) hide show
  1. {laniakea_api_server-0.3.1 → laniakea_api_server-0.3.2}/PKG-INFO +1 -1
  2. {laniakea_api_server-0.3.1 → laniakea_api_server-0.3.2}/laniakea_api/queue.py +15 -6
  3. {laniakea_api_server-0.3.1 → laniakea_api_server-0.3.2}/pyproject.toml +1 -1
  4. {laniakea_api_server-0.3.1 → laniakea_api_server-0.3.2}/.github/workflows/publish.yml +0 -0
  5. {laniakea_api_server-0.3.1 → laniakea_api_server-0.3.2}/.gitignore +0 -0
  6. {laniakea_api_server-0.3.1 → laniakea_api_server-0.3.2}/LICENSE +0 -0
  7. {laniakea_api_server-0.3.1 → laniakea_api_server-0.3.2}/README.md +0 -0
  8. {laniakea_api_server-0.3.1 → laniakea_api_server-0.3.2}/laniakea_api/__init__.py +0 -0
  9. {laniakea_api_server-0.3.1 → laniakea_api_server-0.3.2}/laniakea_api/auth.py +0 -0
  10. {laniakea_api_server-0.3.1 → laniakea_api_server-0.3.2}/laniakea_api/cli.py +0 -0
  11. {laniakea_api_server-0.3.1 → laniakea_api_server-0.3.2}/laniakea_api/config.py +0 -0
  12. {laniakea_api_server-0.3.1 → laniakea_api_server-0.3.2}/laniakea_api/credential_parser.py +0 -0
  13. {laniakea_api_server-0.3.1 → laniakea_api_server-0.3.2}/laniakea_api/database.py +0 -0
  14. {laniakea_api_server-0.3.1 → laniakea_api_server-0.3.2}/laniakea_api/installer.py +0 -0
  15. {laniakea_api_server-0.3.1 → laniakea_api_server-0.3.2}/laniakea_api/main.py +0 -0
  16. {laniakea_api_server-0.3.1 → laniakea_api_server-0.3.2}/laniakea_api/models.py +0 -0
  17. {laniakea_api_server-0.3.1 → laniakea_api_server-0.3.2}/laniakea_api/routers/.health.py.swp +0 -0
  18. {laniakea_api_server-0.3.1 → laniakea_api_server-0.3.2}/laniakea_api/routers/__init__.py +0 -0
  19. {laniakea_api_server-0.3.1 → laniakea_api_server-0.3.2}/laniakea_api/routers/agent.py +0 -0
  20. {laniakea_api_server-0.3.1 → laniakea_api_server-0.3.2}/laniakea_api/routers/agents.py +0 -0
  21. {laniakea_api_server-0.3.1 → laniakea_api_server-0.3.2}/laniakea_api/routers/credentials.py +0 -0
  22. {laniakea_api_server-0.3.1 → laniakea_api_server-0.3.2}/laniakea_api/routers/deployments.py +0 -0
  23. {laniakea_api_server-0.3.1 → laniakea_api_server-0.3.2}/laniakea_api/routers/health.py +0 -0
  24. {laniakea_api_server-0.3.1 → laniakea_api_server-0.3.2}/laniakea_api/routers/tfstate.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: laniakea-api-server
3
- Version: 0.3.1
3
+ Version: 0.3.2
4
4
  Summary: Laniakea Queue API — OIDC-authenticated gateway for cloud deployment orchestration
5
5
  Project-URL: Homepage, https://github.com/laniakea/laniakea-api
6
6
  Project-URL: Issues, https://github.com/laniakea/laniakea-api/issues
@@ -33,6 +33,15 @@ PROVIDER_TO_QUEUE: dict = {
33
33
  "Aws": "aws",
34
34
  }
35
35
 
36
+
37
+ def _vault():
38
+ """Build the Vault client at call time (env vars are loaded by then)."""
39
+ return hvac.Client(
40
+ url=os.getenv("VAULT_ADDR", ""),
41
+ token=os.getenv("VAULT_WRITER_TOKEN", ""),
42
+ verify=os.getenv("VAULT_TLS_VERIFY", "false").lower() == "true",
43
+ )
44
+
36
45
  def get_queue(provider: str) -> tuple:
37
46
  """
38
47
  Returns (queue_name, Queue) for the given provider string.
@@ -132,7 +141,7 @@ def _infer_service_type(data: dict) -> str:
132
141
 
133
142
 
134
143
  def vault_list_service_creds(user_sub: str) -> list:
135
- client = vault_client
144
+ client = _vault()
136
145
  try:
137
146
  resp = client.secrets.kv.v2.list_secrets(path=_sc_path(user_sub), mount_point=VAULT_MOUNT)
138
147
  names = [k.rstrip("/") for k in resp["data"]["keys"]]
@@ -145,7 +154,7 @@ def vault_list_service_creds(user_sub: str) -> list:
145
154
  return out
146
155
 
147
156
  def vault_read_service_creds(user_sub: str, name: str) -> dict:
148
- client = vault_client
157
+ client = _vault()
149
158
  try:
150
159
  resp = client.secrets.kv.v2.read_secret_version(path=_sc_path(user_sub, name), mount_point=VAULT_MOUNT)
151
160
  return resp["data"]["data"] or {}
@@ -153,18 +162,18 @@ def vault_read_service_creds(user_sub: str, name: str) -> dict:
153
162
  return {}
154
163
 
155
164
  def vault_write_service_creds(user_sub: str, name: str, data: dict) -> None:
156
- client = vault_client
165
+ client = _vault()
157
166
  client.secrets.kv.v2.create_or_update_secret(
158
167
  path=_sc_path(user_sub, name), secret=data, mount_point=VAULT_MOUNT)
159
168
 
160
169
  def vault_delete_service_creds(user_sub: str, name: str) -> None:
161
- client = vault_client
170
+ client = _vault()
162
171
  client.secrets.kv.v2.delete_metadata_and_all_versions(
163
172
  path=_sc_path(user_sub, name), mount_point=VAULT_MOUNT)
164
173
 
165
174
 
166
175
  def vault_read_global(user_sub: str) -> dict:
167
- client = vault_client
176
+ client = _vault()
168
177
  try:
169
178
  resp = client.secrets.kv.v2.read_secret_version(
170
179
  path=f"{user_sub}/credentials", mount_point=VAULT_MOUNT)
@@ -177,6 +186,6 @@ def vault_strip_global_keys(user_sub: str, keys: list) -> None:
177
186
  data = vault_read_global(user_sub)
178
187
  for k in keys:
179
188
  data.pop(k, None)
180
- client = vault_client
189
+ client = _vault()
181
190
  client.secrets.kv.v2.create_or_update_secret(
182
191
  path=f"{user_sub}/credentials", secret=data, mount_point=VAULT_MOUNT)
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "laniakea-api-server"
7
- version = "0.3.1"
7
+ version = "0.3.2"
8
8
  description = "Laniakea Queue API — OIDC-authenticated gateway for cloud deployment orchestration"
9
9
  readme = "README.md"
10
10
  license = { text = "MIT" }