Metadata-Version: 2.5
Name: awid-service
Version: 0.5.16
Summary: awid.ai identity registry service and shared awid primitives package
Project-URL: Homepage, https://github.com/awebai/aweb
Project-URL: Repository, https://github.com/awebai/aweb
Project-URL: Documentation, https://github.com/awebai/aweb/tree/main/docs
Author-email: Juan Reyero <juan@juanreyero.com>
License-Expression: MIT
Requires-Python: >=3.12
Requires-Dist: base58>=2.1.1
Requires-Dist: dnspython>=2.8.0
Requires-Dist: fastapi>=0.116.1
Requires-Dist: httpcore>=1.0.9
Requires-Dist: httpx>=0.28.1
Requires-Dist: pgdbm>=0.5.0
Requires-Dist: publicsuffix2>=2.20191221
Requires-Dist: pydantic-settings>=2.10.1
Requires-Dist: pydantic>=2.11.7
Requires-Dist: pynacl>=1.6.2
Requires-Dist: redis>=6.4.0
Requires-Dist: typer>=0.16.1
Requires-Dist: uvicorn[standard]>=0.35.0
Description-Content-Type: text/markdown

# awid.ai service

This directory contains the standalone `awid.ai` registry service.

It is intentionally thin:

- imports the DID, namespace, and address routes from the `aweb` package
- uses the same signing, verification, and HTTP contracts as `aweb`
- owns only service-local concerns: startup, pgdbm wiring, Redis-backed rate
  limiting, health endpoints, Docker packaging, and migration tooling

## Run locally

```bash
uv sync
uv run awid
```

Required environment:

- `AWID_DATABASE_URL` or `DATABASE_URL`
- `AWID_REDIS_URL` or `REDIS_URL`

Optional environment:

- `AWID_HOST` default `0.0.0.0`
- `AWID_PORT` default `8010`
- `AWID_DB_SCHEMA` default `awid`
- `AWID_RATE_LIMIT_BACKEND` default `redis`
- `AWID_SERVICE_TOKEN` optional >=32-byte trusted caller secret; configure the
  same value on aweb to exempt only DID key/address auth reads from public IP limits

## Docker

```bash
cp .env.example .env
docker compose up --build -d
curl http://localhost:8010/health
```

## Release

`awid` is released as a GHCR container image through the repository's `release`
skill and driver. The driver owns planning, exact-byte staging, publication,
tagging, registry verification, and the receipt; do not start a release by
pushing an `awid-vX.Y.Z` tag. The version remains in `pyproject.toml`.
