FHIRVINE-Smart-Proxy/README_PROXY.md
Sudo-JHare 897e875e29 V0.5 - incremental
App should be mostly functional now
2025-04-24 09:27:48 +10:00

84 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Using and Setting Up the SMART on FHIR Proxy in FHIRVINE
## Overview
FHIRVINE provides a SMART on FHIR proxy to securely connect SMART apps to FHIR servers, supporting OAuth2 authentication and proxying requests. This guide explains how to set up and use the proxy function.
## Prerequisites
- Docker and Docker Compose installed.
- A FHIR server (e.g., `http://hapi.fhir.org/baseR4`).
- Python 3.11 (if running locally).
## Setup
### 1. Clone the Repository
```bash
git clone <repository-url>
cd FHIRVINE
```
### 2. Configure Environment Variables
Copy the `.env.example` to `.env` and update the values:
```env
FLASK_ENV=development
SECRET_KEY=your-secure-random-key
DATABASE_URL=sqlite:////app/instance/fhirvine.db
FHIR_SERVER_URL=http://hapi.fhir.org/baseR4
```
### 3. Run with Docker
Build and start the application:
```bash
docker-compose up -d --build
```
The proxy will be available at `http://localhost:5001`.
### 4. (Optional) Run Locally
If not using Docker:
```bash
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
flask db upgrade
flask run --host=0.0.0.0 --port=5001
```
## Using the Proxy
### 1. Register a SMART App
- Navigate to `http://localhost:5001/app-gallery`.
- Click "Register New App".
- Fill in details (e.g., Redirect URIs, Scopes) and submit to get a Client ID and Secret.
### 2. Test the Proxy
- Go to `http://localhost:5001/test-client`.
- Select your apps Client ID, choose a response mode, and launch the test.
- Grant consent at `/oauth2/authorize`.
- The proxy will handle the OAuth2 flow and proxy FHIR requests to the upstream server (e.g., `/oauth2/proxy/Patient`).
### 3. Configure the Proxy
- Visit `http://localhost:5001/configure/proxy-settings` to set the FHIR server URL and proxy timeout.
- Save your settings to update the proxy configuration.
## Key Endpoints
- **Authorization**: `/oauth2/authorize` - Initiates the OAuth2 flow.
- **Token**: `/oauth2/token` - Exchanges code for an access token.
- **Proxy**: `/oauth2/proxy/<path>` - Proxies FHIR requests with the access token.
## Troubleshooting
- **Logs**: Check logs with `docker logs fhirvine_app` for errors.
- **Database**: Ensure values are saved in `/app/instance/fhirvine.db`.