Metadata-Version: 2.4
Name: astraform-remote-domain-conformance
Version: 0.1.0
Summary: Schema-backed conformance runner for Astraform remote-domain.v1 services
License-Expression: Apache-2.0
Project-URL: Documentation, https://github.com/astraform/platform/blob/main/docs/guides/remote-domain-authoring-guide.md
Project-URL: Source, https://github.com/astraform/platform
Project-URL: Publishing, https://github.com/astraform/platform/blob/main/docs/platform/remote-domain-sdk-publishing.md
Keywords: astraform,remote-domain,simulation,conformance
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Typing :: Typed
Requires-Python: >=3.12
Description-Content-Type: text/markdown
Requires-Dist: httpx<1.0,>=0.28
Requires-Dist: jsonschema<5.0,>=4.23
Provides-Extra: test
Requires-Dist: fastapi<1.0,>=0.115; extra == "test"
Requires-Dist: pytest<9.0,>=8.3; extra == "test"

# astraform-remote-domain-conformance

This is the reusable Python conformance harness for `remote-domain.v1`.

Brutal truth: if every partner team needs a platform engineer on Zoom to prove
their service is valid, you do not have a platform. You have consultancy with a
protocol document attached.

This package exercises the real lifecycle:

- `manifest`
- `prepare`
- `status`
- `execute-work`
- `inspection`
- `shutdown`

And it validates payloads against the versioned schema, not just happy-path demo
assertions.

## Install

Current status: this package has Python packaging metadata and a PyPI release
workflow, but no public release has been proven yet. The command below is the
intended consumer install shape after the first PyPI publish.

```bash
pip install astraform-remote-domain-conformance
```

Repo-local development:

```bash
pip install -e './remote-domain-conformance-python[test]'
```

## Run Against A Live Service

```bash
remote-domain-conformance \
  --base-url http://localhost:8092 \
  --domain-id stub-remote
```

## Run Against A Local ASGI App

```bash
remote-domain-conformance \
  --app stub_remote_python.main:app \
  --domain-id stub-remote
```

## Python Usage

```python
import asyncio

from astraform.remote_domain.conformance.runner import ConformanceScenario
from astraform.remote_domain.conformance.runner import run_conformance


report = asyncio.run(
    run_conformance(
        base_url="http://localhost:8092",
        scenario=ConformanceScenario(domain_id="stub-remote"),
    )
)

print(report.to_dict())
```

## Publishing Status

This package should be released through the shared Python + Java SDK publishing
process documented in
[`docs/platform/remote-domain-sdk-publishing.md`](../docs/platform/remote-domain-sdk-publishing.md).

Release guardrail:

```bash
SDK_VERSION=0.1.0 scripts/check-remote-domain-sdk-release-gates.sh
```

Do not treat it as a partner-ready SDK artifact until a clean external consumer
project installs it from PyPI and runs the conformance command outside this
monorepo.

Public package note: PyPI distributions expose this SDK implementation. Keep
host runtime internals and domain-private logic out of this package.
