@le-space/rootfs 0.6.3 → 0.6.4

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@le-space/rootfs",
3
- "version": "0.6.3",
3
+ "version": "0.6.4",
4
4
  "description": "Shared rootfs contract parsing, reference profile assets, and build helpers.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -131,6 +131,9 @@ EOF
131
131
  write_env_var "PUBLIC_RECEIPTS_URL" ""
132
132
 
133
133
  rm -f "${BOOTSTRAP_PACKAGE_FILE}" "${BOOTSTRAP_VERIFICATION_FILE}"
134
+
135
+ # Caddy is started explicitly after /configure writes the deployment hostname.
136
+ systemctl disable caddy.service >/dev/null 2>&1 || true
134
137
  }
135
138
 
136
139
  case "${PHASE}" in
@@ -12,9 +12,12 @@ CADDY_SERVICE="${CADDY_SERVICE:-caddy.service}"
12
12
  CADDYFILE="${CADDYFILE:-/etc/caddy/Caddyfile}"
13
13
  SERVICE_PORT="${SERVICE_PORT:-8787}"
14
14
  PROXY_PORT="${PROXY_PORT:-8788}"
15
+ SERVICE_GROUP="${SERVICE_GROUP:-ucan-store}"
15
16
  PUBLIC_IPV4=""
16
17
  PUBLIC_IPV6=""
17
18
  PROXY_HOSTNAME=""
19
+ SERVICE_DID=""
20
+ SERVICE_ORIGIN=""
18
21
  WEBAUTHN_ORIGIN=""
19
22
  WEBAUTHN_ORIGIN_FALLBACKS=""
20
23
  ADMIN_DID=""
@@ -29,6 +32,8 @@ Usage:
29
32
  --public-ipv4 <ip> \
30
33
  [--public-ipv6 <ipv6>] \
31
34
  [--proxy-hostname <hostname>] \
35
+ [--service-did <did>] \
36
+ [--service-origin <origin>] \
32
37
  [--webauthn-origin <origin>] \
33
38
  [--webauthn-origin-fallbacks <csv>] \
34
39
  [--admin-did <did>] \
@@ -138,7 +143,11 @@ install_bootstrap_package() {
138
143
  --admin-did "${ADMIN_DID}" \
139
144
  --summary-file "${BOOTSTRAP_VERIFICATION_FILE}" >/dev/null
140
145
  cp "${source_file}" "${BOOTSTRAP_PACKAGE_FILE}"
141
- chmod 0640 "${BOOTSTRAP_PACKAGE_FILE}"
146
+ if chgrp "${SERVICE_GROUP}" "${BOOTSTRAP_PACKAGE_FILE}" 2>/dev/null; then
147
+ chmod 0640 "${BOOTSTRAP_PACKAGE_FILE}"
148
+ else
149
+ chmod 0644 "${BOOTSTRAP_PACKAGE_FILE}"
150
+ fi
142
151
  chmod 0644 "${BOOTSTRAP_VERIFICATION_FILE}"
143
152
  }
144
153
 
@@ -156,6 +165,14 @@ while [ "$#" -gt 0 ]; do
156
165
  PROXY_HOSTNAME="${2:-}"
157
166
  shift 2
158
167
  ;;
168
+ --service-did)
169
+ SERVICE_DID="${2:-}"
170
+ shift 2
171
+ ;;
172
+ --service-origin)
173
+ SERVICE_ORIGIN="${2:-}"
174
+ shift 2
175
+ ;;
159
176
  --webauthn-origin)
160
177
  WEBAUTHN_ORIGIN="${2:-}"
161
178
  shift 2
@@ -196,6 +213,7 @@ if [ -z "${PUBLIC_IPV4}" ]; then
196
213
  usage >&2
197
214
  exit 1
198
215
  fi
216
+ SERVICE_ORIGIN="${SERVICE_ORIGIN%/}"
199
217
 
200
218
  touch "${ENV_FILE}"
201
219
 
@@ -217,14 +235,24 @@ if [ -n "${WEBAUTHN_ORIGIN}" ]; then
217
235
  fi
218
236
  write_env_var "WEBAUTHN_ORIGIN_FALLBACKS" "${WEBAUTHN_ORIGIN_FALLBACKS}"
219
237
 
238
+ if [ -z "${SERVICE_DID}" ] && [ -n "${PROXY_HOSTNAME}" ]; then
239
+ SERVICE_DID="$(derive_service_did_from_hostname "${PROXY_HOSTNAME}")"
240
+ fi
241
+
242
+ if [ -z "${SERVICE_ORIGIN}" ] && [ -n "${PROXY_HOSTNAME}" ]; then
243
+ SERVICE_ORIGIN="https://${PROXY_HOSTNAME}"
244
+ fi
245
+
246
+ write_env_var "UCAN_STORE_SERVICE_DID" "${SERVICE_DID}"
247
+
248
+ if [ -n "${SERVICE_ORIGIN}" ]; then
249
+ write_env_var "PUBLIC_UPLOAD_SERVICE_URL" "${SERVICE_ORIGIN}"
250
+ write_env_var "PUBLIC_REVOCATION_URL" "${SERVICE_ORIGIN}"
251
+ write_env_var "PUBLIC_RECEIPTS_URL" "${SERVICE_ORIGIN}/receipt/"
252
+ fi
253
+
220
254
  if [ -n "${PROXY_HOSTNAME}" ]; then
221
- write_env_var "UCAN_STORE_SERVICE_DID" "$(derive_service_did_from_hostname "${PROXY_HOSTNAME}")"
222
255
  write_caddyfile "${PROXY_HOSTNAME}"
223
- write_env_var "PUBLIC_UPLOAD_SERVICE_URL" "https://${PROXY_HOSTNAME}"
224
- write_env_var "PUBLIC_REVOCATION_URL" "https://${PROXY_HOSTNAME}"
225
- write_env_var "PUBLIC_RECEIPTS_URL" "https://${PROXY_HOSTNAME}/receipt/"
226
- else
227
- write_env_var "UCAN_STORE_SERVICE_DID" ""
228
256
  fi
229
257
 
230
258
  touch "${READY_FILE}"
@@ -236,25 +264,24 @@ if [ "${START_SERVICE}" = "1" ]; then
236
264
  systemctl restart "${CADDY_SERVICE}"
237
265
  fi
238
266
 
239
- SERVICE_DID="$(probe_service_did)"
240
- write_env_var "UCAN_STORE_SERVICE_DID" "${SERVICE_DID}"
267
+ PROBED_SERVICE_DID="$(probe_service_did)"
268
+ if [ -z "${SERVICE_DID}" ]; then
269
+ SERVICE_DID="${PROBED_SERVICE_DID}"
270
+ write_env_var "UCAN_STORE_SERVICE_DID" "${SERVICE_DID}"
271
+ fi
241
272
  write_env_var "PUBLIC_UPLOAD_SERVICE_DID" "${SERVICE_DID}"
242
273
  write_env_var "PUBLIC_REVOCATION_DID" "${SERVICE_DID}"
243
274
 
244
275
  if [ -f "${BOOTSTRAP_PACKAGE_FILE}" ]; then
245
- RUNTIME_SERVICE_ORIGIN=""
246
- if [ -n "${PROXY_HOSTNAME}" ]; then
247
- RUNTIME_SERVICE_ORIGIN="https://${PROXY_HOSTNAME}"
248
- fi
249
276
  python3 "${BOOTSTRAP_VALIDATOR}" \
250
277
  --package-file "${BOOTSTRAP_PACKAGE_FILE}" \
251
278
  --runtime-service-did "${SERVICE_DID}" \
252
- --runtime-service-origin "${RUNTIME_SERVICE_ORIGIN}" \
279
+ --runtime-service-origin "${SERVICE_ORIGIN}" \
253
280
  --admin-did "${ADMIN_DID}" >/dev/null
254
281
  node "${BOOTSTRAP_CRYPTO_VERIFIER}" \
255
282
  --package-file "${BOOTSTRAP_PACKAGE_FILE}" \
256
283
  --runtime-service-did "${SERVICE_DID}" \
257
- --runtime-service-origin "${RUNTIME_SERVICE_ORIGIN}" \
284
+ --runtime-service-origin "${SERVICE_ORIGIN}" \
258
285
  --admin-did "${ADMIN_DID}" \
259
286
  --summary-file "${BOOTSTRAP_VERIFICATION_FILE}" >/dev/null
260
287
  fi
@@ -137,6 +137,8 @@ class Handler(BaseHTTPRequestHandler):
137
137
  proxy_candidate if "://" in proxy_candidate else f"https://{proxy_candidate}"
138
138
  ) if proxy_candidate else None
139
139
  proxy_hostname = parsed_proxy.hostname if parsed_proxy and parsed_proxy.hostname else proxy_candidate
140
+ service_did = str(payload.get("service_did") or "").strip()
141
+ service_origin = str(payload.get("service_origin") or "").strip()
140
142
  admin_did = str(payload.get("admin_did") or "").strip()
141
143
  webauthn_origin = str(payload.get("webauthn_origin") or "").strip()
142
144
  webauthn_origin_fallbacks = str(payload.get("webauthn_origin_fallbacks") or "").strip()
@@ -163,6 +165,10 @@ class Handler(BaseHTTPRequestHandler):
163
165
  args.extend(["--public-ipv6", public_ipv6])
164
166
  if proxy_hostname:
165
167
  args.extend(["--proxy-hostname", proxy_hostname])
168
+ if service_did:
169
+ args.extend(["--service-did", service_did])
170
+ if service_origin:
171
+ args.extend(["--service-origin", service_origin])
166
172
  if admin_did:
167
173
  args.extend(["--admin-did", admin_did])
168
174
  if webauthn_origin: