SPAR Self Service API

This page provides comprehensive documentation for the installation of SPAR Self Service API, a service designed for data mapping within the Social Payments Account and Registry (SPAR) system.

Installation

Prerequisites

  • Any machine running Linux (e.g., Ubuntu), macOS, or Windows

  • Python3.10 or later

  • Git

  • PostgreSQL

  • virtualenv

  • eSignet: Ensure that eSignet is properly configured. Refer to the eSignet Deployment Guide for setup instructions.

  • SPAR Mapper API Configuration: Ensure that the SPAR Mapper API is properly configured according to the SPAR Mapper API Installation.

Python dependencies

The following dependencies are managed in the installation steps below.

annotated-types==0.6.0
anyio==3.7.1
asyncio==3.4.3
asyncpg==0.28.0
certifi==2024.2.2
cffi==1.16.0
click==8.1.7
coverage==7.5.1
cryptography==41.0.7
ecdsa==0.19.0
fastapi==0.103.2
greenlet==3.0.3
h11==0.14.0
hiredis==2.2.3
httpcore==1.0.5
httptools==0.6.1
httpx==0.27.0
idna==3.7
iniconfig==2.0.0
Jinja2==3.1.4
json-logging==1.3.0
MarkupSafe==2.1.5
openg2p-fastapi-auth==1.0.0
openg2p-g2pconnect-common-lib==1.0.0
openg2p-g2pconnect-mapper-lib==1.0.0
openg2p-spar-g2pconnect-mapper-connector-lib==1.0.0
openg2p-spar-mapper-interface-lib==1.0.0
-e git+https://github.com/OpenG2P/openg2p-spar-self-service@8e33f41ca0b2447860e8e8e8f901cc3afcc5707c#egg=openg2p_spar_self_service_api&subdirectory=openg2p-spar-self-service-api
openg2p_fastapi_common==1.0.0
orjson==3.9.15
packaging==24.0
parse==1.20.1
pluggy==1.5.0
psycopg2==2.9.9
pyasn1==0.6.0
pycparser==2.22
pydantic==2.7.1
pydantic-extra-types==2.0.0
pydantic-settings==2.0.3
pydantic_core==2.18.2
pytest==8.2.0
pytest-asyncio==0.23.6
pytest-cov==5.0.0
python-dotenv==1.0.1
python-jose==3.3.0
python-multipart==0.0.9
PyYAML==6.0.1
redis==5.0.4
rsa==4.9
six==1.16.0
sniffio==1.3.1
SQLAlchemy==2.0.30
starlette==0.27.0
typing_extensions==4.11.0
uvicorn==0.29.0
uvloop==0.19.0
watchfiles==0.21.0
websockets==12.0

Steps to install

Install from source

  • Clone the repository.

  • Navigate to the project root.

  • Create a virtual environment with Python 3.

  • Activate the virtual environment.

  • Install the necessary dependencies.

Seeding the database (optional)

This will seed the database with default values. Make sure to update the eSignet configuration in the DB as per your installation.

PostgreSQL DB Setup

Create a new role/user called sparuser and create a new database called spardb, with sparuser as the owner. No need to run this step, if Postgres was installed through OpenG2P's deployment script.

Then run the script.

The following optional Env vars can also be passed.

Quick start

  • Start the development server.

Configuration

Environment variables

Set the following environment variables to configure the spar-mapper-api.

Authentication

The spar-self-service-api supports authentication via eSignet. Refer to the deployment documentation for eSignet here for setup instructions.

Setting up redirection

To integrate the SPAR Self-Service UI with any login provider, you need to add the redirect_uri in the authorization_parameter column.

  • This URL needs to be updated in the login_providers table, specifically in the authorization_parameters column for the eSignet record.

  • Make sure to replace selfservice.qa.openg2p.net with the appropriate domain that matches your eSignet configuration.

Testing

Run the unit tests with pytest.

Contributing

Contribution guidelines are available here.

Last updated