messagefoundry-webconsole 0.2.15__py3-none-any.whl

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 (40) hide show
  1. messagefoundry_webconsole/__init__.py +128 -0
  2. messagefoundry_webconsole/_auth.py +841 -0
  3. messagefoundry_webconsole/_html.py +539 -0
  4. messagefoundry_webconsole/_security.py +253 -0
  5. messagefoundry_webconsole/_service.py +22 -0
  6. messagefoundry_webconsole/_static.py +78 -0
  7. messagefoundry_webconsole/mount.py +103 -0
  8. messagefoundry_webconsole/pages/__init__.py +25 -0
  9. messagefoundry_webconsole/pages/_common.py +21 -0
  10. messagefoundry_webconsole/pages/account.py +771 -0
  11. messagefoundry_webconsole/pages/admin.py +480 -0
  12. messagefoundry_webconsole/pages/audit.py +66 -0
  13. messagefoundry_webconsole/pages/config.py +113 -0
  14. messagefoundry_webconsole/pages/connections.py +519 -0
  15. messagefoundry_webconsole/pages/messages.py +689 -0
  16. messagefoundry_webconsole/pages/monitoring.py +853 -0
  17. messagefoundry_webconsole/pages/uploaded_logs.py +252 -0
  18. messagefoundry_webconsole/routes/__init__.py +6 -0
  19. messagefoundry_webconsole/routes/_common.py +45 -0
  20. messagefoundry_webconsole/routes/account.py +451 -0
  21. messagefoundry_webconsole/routes/admin.py +505 -0
  22. messagefoundry_webconsole/routes/audit.py +39 -0
  23. messagefoundry_webconsole/routes/config.py +67 -0
  24. messagefoundry_webconsole/routes/connection_writes.py +248 -0
  25. messagefoundry_webconsole/routes/core.py +1077 -0
  26. messagefoundry_webconsole/routes/monitoring.py +94 -0
  27. messagefoundry_webconsole/routes/monitoring_writes.py +205 -0
  28. messagefoundry_webconsole/routes/oidc.py +172 -0
  29. messagefoundry_webconsole/routes/search.py +204 -0
  30. messagefoundry_webconsole/routes/sso.py +88 -0
  31. messagefoundry_webconsole/routes/status.py +178 -0
  32. messagefoundry_webconsole/routes/uploaded_logs.py +181 -0
  33. messagefoundry_webconsole/static/app.css +345 -0
  34. messagefoundry_webconsole/static/app.js +1506 -0
  35. messagefoundry_webconsole/static/csp-probe.js +9 -0
  36. messagefoundry_webconsole-0.2.15.dist-info/METADATA +63 -0
  37. messagefoundry_webconsole-0.2.15.dist-info/RECORD +40 -0
  38. messagefoundry_webconsole-0.2.15.dist-info/WHEEL +4 -0
  39. messagefoundry_webconsole-0.2.15.dist-info/licenses/LICENSE +662 -0
  40. messagefoundry_webconsole-0.2.15.dist-info/licenses/NOTICE +31 -0
@@ -0,0 +1,9 @@
1
+ // SPDX-License-Identifier: AGPL-3.0-or-later
2
+ // CSP-ENFORCEMENT CANARY (ASVS 3.7.5). Loaded by the /ui page shell as an UN-NONCED <script src>
3
+ // whenever a per-response nonce CSP is bound. Under `script-src 'nonce-…' 'strict-dynamic'` a browser
4
+ // that ENFORCES the policy refuses this parser-inserted, un-nonced script before it is even fetched —
5
+ // so the global below stays undefined. A browser that does NOT enforce CSP fetches and runs it, and
6
+ // the nonce'd detect script in the shell then sees the global and raises the visible
7
+ // "hardening degraded" banner. It is therefore a TRUE enforcement detect: the flag can only be set
8
+ // when the policy is not being applied. Deliberately inert — one boolean, no DOM, no network, no PHI.
9
+ window.__mfCspProbe = true;
@@ -0,0 +1,63 @@
1
+ Metadata-Version: 2.4
2
+ Name: messagefoundry-webconsole
3
+ Version: 0.2.15
4
+ Summary: Web ops console for MessageFoundry — the same-origin browser dashboard mounted onto the engine (ADR 0065)
5
+ Project-URL: Homepage, https://messagefoundry.org/
6
+ Project-URL: Source, https://github.com/MEFORORG/MessageFoundry
7
+ Project-URL: Issues, https://github.com/MEFORORG/MessageFoundry/issues
8
+ Author: MessageFoundry Organization and contributors
9
+ License-Expression: AGPL-3.0-or-later
10
+ License-File: LICENSE
11
+ License-File: NOTICE
12
+ Keywords: dashboard,fastapi,healthcare,hl7,integration,web-console
13
+ Classifier: Development Status :: 4 - Beta
14
+ Classifier: Environment :: Web Environment
15
+ Classifier: Intended Audience :: Healthcare Industry
16
+ Classifier: Intended Audience :: System Administrators
17
+ Classifier: Operating System :: Microsoft :: Windows
18
+ Classifier: Operating System :: POSIX :: Linux
19
+ Classifier: Programming Language :: Python :: 3
20
+ Classifier: Programming Language :: Python :: 3.14
21
+ Classifier: Topic :: Communications
22
+ Classifier: Topic :: Internet :: WWW/HTTP :: WSGI :: Application
23
+ Requires-Python: >=3.14
24
+ Requires-Dist: messagefoundry
25
+ Provides-Extra: dev
26
+ Requires-Dist: messagefoundry[dev]; extra == 'dev'
27
+ Description-Content-Type: text/markdown
28
+
29
+ <!-- SPDX-License-Identifier: AGPL-3.0-or-later -->
30
+
31
+ # messagefoundry-webconsole
32
+
33
+ The **web ops console** for [MessageFoundry](https://messagefoundry.org/) — the same-origin browser
34
+ dashboard served under `/ui` (ADR 0065). A separately-versioned second distribution that the engine
35
+ **mounts in-process, same-origin**, via one `mount_ui(app, deps)` call from `create_app`'s `serve_ui`
36
+ tail (Option B).
37
+
38
+ It owns the entire `/ui` surface — page rendering, the confined `mf_session` cookie auth, the
39
+ write-action registry, and every `/ui` route — and reaches the reused JSON handlers through the typed
40
+ `UiDeps` bundle the engine injects. It imports only `fastapi`, the leaf-safe `messagefoundry.api`
41
+ surface (`security`/`models`/`auth_models`/`_ui_seam`), `messagefoundry.auth`, and the pure
42
+ `messagefoundry.parsing` lib — never `pipeline`/`store`/`transports`/`config`.
43
+
44
+ ## Install
45
+
46
+ ```
47
+ pip install -e packaging/messagefoundry-webconsole # from the source tree, alongside the engine
48
+ ```
49
+
50
+ > **Not on PyPI yet.** This distribution has never been published, so its name is **unclaimed**.
51
+ > Installing it by bare name from an index would resolve whatever a third party has uploaded under
52
+ > that name — and an sdist executes its build backend during `pip install`, before any engine process
53
+ > exists. Install from the source tree until the name is registered (ASVS 15.2.4).
54
+
55
+ A plain `pip install messagefoundry` stays byte-identical: with the console absent and `serve_ui`
56
+ default-off, the JSON API is unchanged; `serve_ui=true` without the console fails LOUD at startup.
57
+
58
+ ## Compatibility
59
+
60
+ The console pins itself against the engine's `ENGINE_UI_SEAM` (`SUPPORTED_ENGINE_SEAMS` +
61
+ `assert_engine_seam`) and supports **exactly one** seam — the engine build it was released against
62
+ (BACKLOG #279). Any other engine/console pair is refused at startup with a clear `UiSeamMismatch`
63
+ rather than failing later inside a page render.
@@ -0,0 +1,40 @@
1
+ messagefoundry_webconsole/__init__.py,sha256=UsF6p6AE0g1h_AqvKIVqT8NoHoR9OvHqI2iBfJ4yteY,5906
2
+ messagefoundry_webconsole/_auth.py,sha256=meGiB32dJsIbEI0LVr5ZSOdMPFIHHqTfWZFNzktaLvY,47193
3
+ messagefoundry_webconsole/_html.py,sha256=kskn98mavnolBatuwfgqzFCIdEHIpy3laqIdQs88XTc,29848
4
+ messagefoundry_webconsole/_security.py,sha256=OVzTfbw8hSssGtuKXyzYpgIJ0RTSJtqfn19tINAvxNE,18111
5
+ messagefoundry_webconsole/_service.py,sha256=5DjBUAtOZCOv8fw-tEgYZZF_colQhsdJHzFgcGGDp9s,868
6
+ messagefoundry_webconsole/_static.py,sha256=OKAU1SQ-1hN5KWqfzxmNf3PYrfRnrkFKajKuVH1qsF8,4315
7
+ messagefoundry_webconsole/mount.py,sha256=Jkn7XhsLTZdaIKl5185hBPrm9wcgablf6dDLuL9ePRU,5101
8
+ messagefoundry_webconsole/pages/__init__.py,sha256=FENRGyI_S7hYjxv2c0FSkc6em5qlIriwlWiFwd-cvbo,1313
9
+ messagefoundry_webconsole/pages/_common.py,sha256=v2hXG9E1-tlDf8_MkIUoSdVQSfu5qM2XcY-l_o3km94,730
10
+ messagefoundry_webconsole/pages/account.py,sha256=F9aOmcDhXs2EQBSnppsVRwtBLdFDJ3JuaXuHIHWRc6w,28841
11
+ messagefoundry_webconsole/pages/admin.py,sha256=ViTH1z9zX4RVkPiu49eRZNODTn0n-45smqE4103zgew,16529
12
+ messagefoundry_webconsole/pages/audit.py,sha256=ogpXErwXXIOZaVG8io0DWEZBl3xKA4UhGJRHCWMRUjA,2603
13
+ messagefoundry_webconsole/pages/config.py,sha256=dqfmhJAL6dsK8dBr7f78sBZoAE64B4tFqNUPj5g35Q8,4357
14
+ messagefoundry_webconsole/pages/connections.py,sha256=NXwj95YG3CY_ZX_Ci7Xb2U6f0tpT67tCwtEchZ9Q96Y,21427
15
+ messagefoundry_webconsole/pages/messages.py,sha256=QQmz79wm5m7UMNGdUG2-rjAwiKibNnLOqrT_Sgel8E8,25210
16
+ messagefoundry_webconsole/pages/monitoring.py,sha256=DgL6_qSx3RWsF-kRt_RoFKhEDOmXDV1_QDx8A5QzkhY,33182
17
+ messagefoundry_webconsole/pages/uploaded_logs.py,sha256=ab-vw_VzR90j2eiCSdxfqPmtu8UgppqKFkcMxZWqOZ0,9161
18
+ messagefoundry_webconsole/routes/__init__.py,sha256=eBlRtAF4UmeA3sF7zy_rGVHyG7GDygOrJfo9EaGP7QM,503
19
+ messagefoundry_webconsole/routes/_common.py,sha256=7Im-7xseECz4DCZtTqqHqI2T8VLHGqN2slrcTnFMQek,2538
20
+ messagefoundry_webconsole/routes/account.py,sha256=vCQY-ghauSj07znaxW_Lu4lhYNmyoBZHzKvkLEdtGOw,21562
21
+ messagefoundry_webconsole/routes/admin.py,sha256=5Hfb5cOzEDPIh7Jv7BfF091yCRpT_dwZL7I1X4xzGOQ,22520
22
+ messagefoundry_webconsole/routes/audit.py,sha256=iBO9DzmEQ5d0HfBzCkZqKEw2vB7I3nVLua8YuRy7c5o,1414
23
+ messagefoundry_webconsole/routes/config.py,sha256=fbPk55-p0DiTxQuf5NleRJC_Pf4GwechO7qsftKPJDE,2685
24
+ messagefoundry_webconsole/routes/connection_writes.py,sha256=4df--t44fxy6VkByng7-2rNg--njIVb1CNubwTi1Ycc,12310
25
+ messagefoundry_webconsole/routes/core.py,sha256=B8rHAsIFVS7HgDA9jchULkqIzTPjepjZ2lyMDMcLZFY,59084
26
+ messagefoundry_webconsole/routes/monitoring.py,sha256=R56OiNMrdod4ohPzZueO4kVZQO54EugEpGv7pP469gc,4570
27
+ messagefoundry_webconsole/routes/monitoring_writes.py,sha256=IqYbhTRdoTpDStSPtICRptNFTC9BhXvGux_2wRpFlQ8,9112
28
+ messagefoundry_webconsole/routes/oidc.py,sha256=RxQghhtSxbt1NRthN1jjLXaoUD1L6_iyc_kKbRszLiU,9430
29
+ messagefoundry_webconsole/routes/search.py,sha256=5amHQ2VDNFvnMzhmAfoo8dDY2kCyvqZNdHgWTt2agEA,9284
30
+ messagefoundry_webconsole/routes/sso.py,sha256=YmMBZ1zKgGEOZfQ_oAxFU1tZo1XX4bHotE9xQ8rn0Zw,5072
31
+ messagefoundry_webconsole/routes/status.py,sha256=wN1s0_DZ5uNxHP8A_3n9U_ky8tW0ujzG5Yr0V4hGPhI,8635
32
+ messagefoundry_webconsole/routes/uploaded_logs.py,sha256=h8iA-LXNE6VSg_otn_5iZVFOoKrLxPa4rejM7csDbeo,8333
33
+ messagefoundry_webconsole/static/app.css,sha256=H67GGdeyYC7W3D8MD5QNPHXcYbFoISCfmyUy_g2X7JA,18201
34
+ messagefoundry_webconsole/static/app.js,sha256=8sU-ObbyI2az4SGxNnJpZpTHf69nzywjWFarKot1dpI,70812
35
+ messagefoundry_webconsole/static/csp-probe.js,sha256=AlIvm7KaGYff1b2O2CDAVmQFSkB-37urzTEAVS4JHbo,774
36
+ messagefoundry_webconsole-0.2.15.dist-info/METADATA,sha256=J7FPJhmsGPnFJd-PVUdOzREmYgbA2WopGasvVeXjmiI,3167
37
+ messagefoundry_webconsole-0.2.15.dist-info/WHEEL,sha256=lCkmxWfQsSc9CfIClYeavTdQeEX2toPqufh9gI35EQA,87
38
+ messagefoundry_webconsole-0.2.15.dist-info/licenses/LICENSE,sha256=jVa0BUaKrRH4erV2P5AeJ24I2WRv9chIGxditreJ6e0,34524
39
+ messagefoundry_webconsole-0.2.15.dist-info/licenses/NOTICE,sha256=x5Qlg0danKiYRSQeTG4kyZZhMULRgvYqNBEnZdqlWGk,1793
40
+ messagefoundry_webconsole-0.2.15.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.31.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any