Metadata-Version: 2.4
Name: healthassure-messaging
Version: 1.0.0
Summary: Typed business-messaging orchestration with a Meta Cloud API provider
Author: HealthAssure
License-Expression: Apache-2.0
Project-URL: Homepage, https://github.com/healthassure-github/healthassure-messaging
Project-URL: Source, https://github.com/healthassure-github/healthassure-messaging
Project-URL: Issues, https://github.com/healthassure-github/healthassure-messaging/issues
Project-URL: Changelog, https://github.com/healthassure-github/healthassure-messaging/blob/main/CHANGELOG.md
Project-URL: Security, https://github.com/healthassure-github/healthassure-messaging/security/advisories/new
Classifier: Development Status :: 5 - Production/Stable
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Typing :: Typed
Requires-Python: <3.14,>=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: NOTICE
Requires-Dist: requests<3,>=2.32.3
Provides-Extra: mongo
Requires-Dist: pymongo<5,>=4.11.1; extra == "mongo"
Provides-Extra: dev
Requires-Dist: build<2,>=1.5; extra == "dev"
Requires-Dist: check-wheel-contents<1,>=0.6; extra == "dev"
Requires-Dist: mypy<3,>=2.3; extra == "dev"
Requires-Dist: ruff<0.17,>=0.16; extra == "dev"
Requires-Dist: twine<7,>=6.2; extra == "dev"
Requires-Dist: types-requests<3,>=2.33.0.20260712; extra == "dev"
Dynamic: license-file

# healthassure-messaging

`healthassure-messaging` is a typed Python SDK for durable business-messaging
orchestration. It provides provider-neutral requests, explicit provider routing,
consent and session policy ports, idempotent dispatch state, and optional Mongo
persistence. A Meta Cloud API provider and Meta delivery-webhook parser are
included.

Stable version 1.0.0 requires Python 3.10 through 3.13.

## Installation

```bash
python -m pip install healthassure-messaging
```

Install the optional caller-owned Mongo persistence adapter with:

```bash
python -m pip install 'healthassure-messaging[mongo]'
```

## Provider-neutral orchestration

```python
from healthassure_messaging import (
    FakeMessagingProvider,
    MessagingGateway,
    MessagingService,
    ProviderRegistry,
    SendDisposition,
)
```

Applications supply policy, session, template, and intent ports to
`MessagingService`. Provider selection is explicit: the service does not retry
or fall back to another provider automatically. Requests are serialized with
schema version `1` before a claimed dispatch.

The optional `MongoMessagingPersistence` accepts a caller-owned PyMongo
`Database` handle. It never creates a client, loads credentials, reads settings,
or connects during import. Index creation occurs only through an explicit
`ensure_indexes()` call. Policy and session event arrays are intentionally
unbounded in this release; production adopters need an archival or compaction
design. Mongo command construction is covered with deterministic fakes, while
real-server atomicity and index compatibility remain an integration evidence
gate for adopters.

## Supported external platform

The included `MetaCloudProvider` supports outbound text and template requests to
the Meta WhatsApp Business Platform, plus signature verification and delivery
status parsing for Meta webhook payloads. Consumers own credentials,
configuration, consent records, template mappings, routing, and operational
controls. The library makes no provider or database call during import.

Meta and WhatsApp are trademarks of Meta Platforms, Inc. This project is not
affiliated with, sponsored by, or endorsed by Meta Platforms, Inc.

## Security and contributing

Report vulnerabilities privately as described in [SECURITY.md](SECURITY.md).
Development and synthetic-data requirements are in
[CONTRIBUTING.md](CONTRIBUTING.md). Changes are recorded in
[CHANGELOG.md](CHANGELOG.md).

## License

Copyright 2026 HealthAssure. Licensed under the Apache License, Version 2.0.
