@@ -627,45 +627,6 @@ sudo cp nginx.apimanager.conf /etc/nginx/sites-enabled/
627627sudo systemctl reload nginx
628628```
629629
630- ** Directory Structure:**
631-
632- ```
633- /OpenBankProject/
634- ├── API-Manager/
635- │ ├── apimanager/
636- │ │ ├── apimanager/
637- │ │ │ ├── __init__.py
638- │ │ │ ├── settings.py
639- │ │ │ ├── local_settings.py # Your config
640- │ │ │ ├── urls.py
641- │ │ │ └── wsgi.py
642- │ │ └── manage.py
643- │ ├── apimanager.service
644- │ ├── gunicorn.conf.py
645- │ ├── nginx.apimanager.conf
646- │ ├── supervisor.apimanager.conf
647- │ └── requirements.txt
648- ├── db.sqlite3
649- ├── logs/
650- ├── static-collected/
651- └── venv/
652- ```
653-
654- ** PostgreSQL Configuration:**
655-
656- ``` python
657- DATABASES = {
658- ' default' : {
659- ' ENGINE' : ' django.db.backends.postgresql_psycopg2' ,
660- ' NAME' : ' apimanager_db' ,
661- ' USER' : ' apimanager_user' ,
662- ' PASSWORD' : ' secure_password' ,
663- ' HOST' : ' localhost' ,
664- ' PORT' : ' 5432' ,
665- }
666- }
667- ```
668-
669630** Management:**
670631
671632- Super Admin users can manage roles at ` /users `
@@ -3939,7 +3900,9 @@ LANGCHAIN_TRACING_V2=true
39393900LANGCHAIN_API_KEY=lsv2_pt_...
39403901```
39413902
3942- ### 12.3 Props File Complete Reference
3903+ ### 12.3 OBP API props examples
3904+
3905+ see sample.props.template for comprehensive list of props
39433906
39443907** Core Settings:**
39453908
@@ -4850,116 +4813,6 @@ PUT /management/consumers/{CONSUMER_ID}
48504813PUT /management/consumers/{CONSUMER_ID}/consumer/certificate
48514814```
48524815
4853- ### 6.4 SSL/TLS Configuration
4854-
4855- #### 6.4.1 SSL with PostgreSQL
4856-
4857- ** Generate SSL Certificates:**
4858-
4859- ``` bash
4860- # Create SSL directory
4861- sudo mkdir -p /etc/postgresql/ssl
4862- cd /etc/postgresql/ssl
4863-
4864- # Generate private key
4865- sudo openssl genrsa -out server.key 2048
4866-
4867- # Generate certificate signing request
4868- sudo openssl req -new -key server.key -out server.csr
4869-
4870- # Self-sign certificate (or use CA-signed)
4871- sudo openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
4872-
4873- # Set permissions
4874- sudo chmod 600 server.key
4875- sudo chown postgres:postgres server.key server.crt
4876- ```
4877-
4878- ** PostgreSQL Configuration (` postgresql.conf ` ):**
4879-
4880- ``` ini
4881- ssl = on
4882- ssl_cert_file = ' /etc/postgresql/ssl/server.crt'
4883- ssl_key_file = ' /etc/postgresql/ssl/server.key'
4884- ssl_ca_file = ' /etc/postgresql/ssl/ca.crt' # Optional
4885- ssl_prefer_server_ciphers = on
4886- ssl_ciphers = ' HIGH:MEDIUM:+3DES:!aNULL'
4887- ```
4888-
4889- ** OBP-API Props:**
4890-
4891- ``` properties
4892- db.url =jdbc:postgresql://localhost:5432/obpdb?user =obp&password =xxx&ssl =true&sslmode =require
4893- ```
4894-
4895- #### 6.4.2 SSL Encryption with Props File
4896-
4897- ** Generate Keystore:**
4898-
4899- ``` bash
4900- # Generate keystore with key pair
4901- keytool -genkeypair -alias obp-api \
4902- -keyalg RSA -keysize 2048 \
4903- -keystore /path/to/api.keystore.jks \
4904- -validity 365
4905-
4906- # Export public certificate
4907- keytool -export -alias obp-api \
4908- -keystore /path/to/api.keystore.jks \
4909- -rfc -file apipub.cert
4910-
4911- # Extract public key
4912- openssl x509 -pubkey -noout -in apipub.cert > public_key.pub
4913- ```
4914-
4915- ** Encrypt Props Values:**
4916-
4917- ``` bash
4918- #! /bin/bash
4919- # encrypt_prop.sh
4920- echo -n " $2 " | openssl pkeyutl \
4921- -pkeyopt rsa_padding_mode:pkcs1 \
4922- -encrypt \
4923- -pubin \
4924- -inkey " $1 " \
4925- -out >( base64)
4926- ```
4927-
4928- ** Usage:**
4929-
4930- ``` bash
4931- ./encrypt_prop.sh /path/to/public_key.pub " my-secret-password"
4932- # Outputs: BASE64_ENCODED_ENCRYPTED_VALUE
4933- ```
4934-
4935- ** Props Configuration:**
4936-
4937- ``` properties
4938- # Enable JWT encryption
4939- jwt.use.ssl =true
4940- keystore.path =/path/to/api.keystore.jks
4941- keystore.alias =obp-api
4942-
4943- # Encrypted property
4944- db.password.is_encrypted =true
4945- db.password =BASE64_ENCODED_ENCRYPTED_VALUE
4946- ```
4947-
4948- #### 6.4.3 Password Obfuscation (Jetty)
4949-
4950- ** Generate Obfuscated Password:**
4951-
4952- ``` bash
4953- java -cp /usr/share/jetty9/lib/jetty-util-* .jar \
4954- org.eclipse.jetty.util.security.Password \
4955- # ## 12.5 Complete API Roles Reference
4956-
4957- OBP-API uses a comprehensive role-based access control (RBAC) system with over ** 334 static roles** . Roles control access to specific API endpoints and operations.
4958-
4959- ** Note:** All roles can be dynamically listed using the ` /obp/v5.1.0/roles` endpoint.
4960-
4961- ** Last Updated:** 2025-10-29
4962-
49634816#### Role Naming Convention
49644817
49654818Roles follow a consistent naming pattern:
0 commit comments