Member invites, gallery resync, content and operator docs
- Invite flow: admin issue/revoke on join requests, public single-use claim links (hash-only tokens, 7-day expiry, no state reveal), claim creates the Member account and marks the request accepted - Gallery: admin status page plus resync endpoint; sync refreshes thumbnails whose content changed; tools/gallery contract and checker - Docs: public content page, admin-only operator runbook, api.md invite/gallery sections, all routes in the live API docs, docs reachability gate test - Screenshots cover the new pages; version 1.0.18
This commit is contained in:
@@ -19,7 +19,7 @@ STAGING_ADMIN_PASSWORD ?= staging-admin-pass-1
|
||||
PYTEST := $(PY) -m pytest
|
||||
|
||||
.PHONY: install dev prod test test-headed test-unit test-api test-e2e test-fast test-failed \
|
||||
test-first-failure test-slowest test-cache-clean check-ui preflight coverage coverage-headed \
|
||||
test-first-failure test-slowest test-cache-clean check-ui check-gallery preflight coverage coverage-headed \
|
||||
coverage-html locust locust-headless screenshots screenshots-staging screenshots-production \
|
||||
staging-refresh prune prune-dry-run tree tree-loc zip delete-pyc clean
|
||||
|
||||
@@ -73,6 +73,9 @@ test-cache-clean:
|
||||
check-ui: $(STAMP)
|
||||
$(PY) -m $(PKG).gates
|
||||
|
||||
check-gallery: $(STAMP)
|
||||
$(PY) tools/gallery/check.py $(GALLERY_DIR)
|
||||
|
||||
preflight: $(STAMP)
|
||||
$(PY) -c "import $(PKG).main; print('import ok')"
|
||||
$(PY) -m pyflakes $(PKG) tests
|
||||
|
||||
Reference in New Issue
Block a user