Metadata-Version: 2.4
Name: exordos_notification
Version: 1.2.3
Summary: The Platform Notification summary
Author-email: Genesis Corporation <eugene@frolov.net.ru>
License: Apache-2.0
Project-URL: homepage, https://github.com/exordos/exordos_notification/
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
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: Programming Language :: Python :: 3.14
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: oslo.config<10.0.0,>=3.22.2
Requires-Dist: restalchemy<17.0.0,>=16.0.1
Requires-Dist: gcl_iam<2.0.0,>=1.4.0
Requires-Dist: gcl_looper<2.0.0,>=1.2.3
Requires-Dist: gcl_sdk<4.0.0,>=3.6.0
Requires-Dist: bjoern>=3.2.2
Requires-Dist: Jinja2<4.0.0,>=3.1.5
Requires-Dist: bazooka<2.0.0,>=1.3.0
Requires-Dist: zulip<1.0.0,>=0.9.0
Provides-Extra: dev
Requires-Dist: tox>=4.56.4; extra == "dev"
Requires-Dist: tox-uv; extra == "dev"
Requires-Dist: pytest<10.0.0,>=8.0.0; extra == "dev"
Provides-Extra: test
Requires-Dist: coverage>=4.0; extra == "test"
Requires-Dist: mock<6.0.0,>=3.0.5; extra == "test"
Requires-Dist: pytest<10.0.0,>=8.0.0; extra == "test"
Requires-Dist: pytest-timer<2.0.0,>=1.0.0; extra == "test"
Provides-Extra: mypy
Requires-Dist: mypy; extra == "mypy"
Provides-Extra: ruff
Requires-Dist: ruff; extra == "ruff"
Provides-Extra: shellcheck
Requires-Dist: shellcheck-py; extra == "shellcheck"
Dynamic: license-file

# exordos_notification

Platform notification service for Exordos. Sends email confirmations and other transactional emails via a dedicated mailaas relay.

## Requirements

- `core` ≥ 0.0.0
- `dbaas` ≥ 2.2.4
- `mailaas` ≥ 0.0.0

## Installation

### 1. Install the element

```bash
exordos em elements install exordos_notification
```

This installs the notification service, its database, mail relay instance, IAM users and permissions. Wait for the element to become `ACTIVE`.

### 2. Configure site-specific settings

`exordos_notification` creates a VS variable `notification_noreply_address` with no default value — it is installation-specific (depends on your mail domain). Until it is set, the SMTP provider resource stays `NEW` and no emails are sent.

Copy the example manifest and fill in your noreply address:

```bash
cp exordos/manifests/site_config.yaml.j2.example exordos/manifests/site_config.yaml.j2
# Edit site_config.yaml.j2 and set the noreply address:
#   value: "noreply@your-mail-domain.example.com"
exordos em elements install exordos/manifests/site_config.yaml.j2
```

The `notification_site_config` element must be installed **once per deployment** after `exordos_notification` is active. Reinstalling `exordos_notification` will not overwrite it.

## Architecture

```
IAM (core)  ──event──►  exordos_notification  ──SMTP──►  mailaas exim4 DP
                             │
                             └── PostgreSQL (dbaas)
```

- **notification-cp** — the notification control plane VM (runs the notification service)
- **mailaas relay** — a dedicated `mail.instances` provisioned by metapaas; the notification service authenticates as the `smtp` account
- **VS variables** — `notification_noreply_address` (set via `site_config`) and `notification_endpoint` (auto-set by the manifest)
