Quickstart ========== Prerequisites ------------- - **Java 21+** — `Eclipse Temurin `_ recommended - **Maven 3.9+** — `Download `_ Build from Source ----------------- .. code-block:: bash git clone https://github.com/your-org/sieve-aml.git cd sieve-aml mvn clean verify This produces executable JARs for the server and CLI: - ``sieve-server/target/sieve-server-0.1.0-SNAPSHOT.jar`` - ``sieve-cli/target/sieve-cli-0.1.0-SNAPSHOT.jar`` Start the Server ---------------- .. code-block:: bash java -jar sieve-server/target/sieve-server-0.1.0-SNAPSHOT.jar The server starts on port **8080** and automatically fetches OFAC SDN data on first startup. Once loaded, the API is ready: .. code-block:: bash curl -X POST http://localhost:8080/api/v1/screen \ -H "Content-Type: application/json" \ -d '{"name": "Vladimir Putin", "threshold": 0.80}' Swagger UI is available at ``http://localhost:8080/swagger-ui.html``. Screen via CLI -------------- .. code-block:: bash java -jar sieve-cli/target/sieve-cli-0.1.0-SNAPSHOT.jar screen "John Doe" The CLI auto-fetches lists if the index is empty. Exit codes: - ``0`` — no match found - ``1`` — match found (useful for CI/CD pipelines) - ``2`` — error Next Steps ---------- - :doc:`docker` — run Sieve with Docker Compose (includes PostgreSQL) - :doc:`configuration` — customize lists, thresholds, and storage - :doc:`/api/index` — full REST API reference