Metadata-Version: 2.4
Name: runopsy-server
Version: 0.1.4
Summary: Local read-mostly HTTP API over a Runopsy store
Project-URL: Homepage, https://github.com/vahit19/runopsy
Project-URL: Repository, https://github.com/vahit19/runopsy
Project-URL: Issues, https://github.com/vahit19/runopsy/issues
Project-URL: Changelog, https://github.com/vahit19/runopsy/blob/main/CHANGELOG.md
Author-email: Vahit Feryad <vahit.feryat@gmail.com>
License-Expression: Apache-2.0
Keywords: agent,api,fastapi,observability
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Debuggers
Classifier: Topic :: Software Development :: Quality Assurance
Classifier: Topic :: System :: Monitoring
Classifier: Typing :: Typed
Requires-Python: >=3.12
Requires-Dist: fastapi>=0.115
Requires-Dist: runopsy-cli==0.1.4
Requires-Dist: runopsy-collector==0.1.4
Requires-Dist: runopsy-core==0.1.4
Requires-Dist: runopsy-replay==0.1.4
Requires-Dist: uvicorn>=0.30
Description-Content-Type: text/markdown

# runopsy-server

The local API from section 19.2, plus a plain index page.

Local means local. It binds to loopback, has no authentication, and is not built to be
exposed — everything it serves is the contents of somebody's private repository, and an
API that could be published would need a different security posture than one that
cannot reach the network.

Two rules are enforced rather than documented:

**Read-mostly.** Ingesting events is allowed, because an adapter may prefer HTTP to a
subprocess. Replay *execution* is not exposed at all. The only thing in Runopsy that can
change the world stays behind a command a person types, where the plan can be read
first — a socket is a poor place to make that decision on someone's behalf.

**The same redaction as everywhere else.** Reports served here are redacted exactly as
`runopsy export` redacts them, and observed edges are returned separately from inferred
ones so a viewer cannot draw a guess and a measurement as the same kind of line. A
second surface with weaker rules is how the first surface's rules stop mattering.
