Metadata-Version: 2.5
Name: sayfirst-boundary
Version: 0.2.0
Summary: The in-process boundary that holds a grant and asks before an effect
Project-URL: Repository, https://github.com/fredaime/sayfirst-control-plane
Project-URL: Documentation, https://github.com/fredaime/sayfirst-control-plane/blob/main/packages/boundary/README.md
Project-URL: Changelog, https://github.com/fredaime/sayfirst-control-plane/blob/main/CHANGELOG.md
Author-email: fredaime <frederic.aime@gmail.com>
License-Expression: Apache-2.0
License-File: LICENSE
License-File: NOTICE
Classifier: Development Status :: 4 - Beta
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Python: <3.15,>=3.12
Requires-Dist: sayfirst-contract==0.2.0
Description-Content-Type: text/markdown

<!-- SPDX-License-Identifier: Apache-2.0 -->
# sayfirst-boundary

The in-process boundary. A governed program opens `Boundary.request(...)` around
an effect; the decision lands before the body runs, or the body does not run.

This distribution holds no policy and decides nothing. It asks the control plane
over a socket whose peer it verified, caches an `allow` as a grant for exactly
the question it answers, and stops honouring that grant the moment any of four
things happens: the connection carrying it ends, its lifetime runs out, the
policy version it was issued under changes, or the control plane goes silent for
a lifetime.

It publishes no exit codes. Outcomes leave as exceptions, and a caller that runs
a process decides what to exit with.
