gorules/brms

By gorules

Updated about 7 hours ago

Business rules management system by GoRules.

Image
Integration & Delivery
Web Servers
Developer Tools

100K+

GoRules BRMS

Website | Documentation

GoRules BRMS is a business rules management system that is used to define, deploy, execute, and maintain the variety and complexity of decision logic within an organization or enterprise. GoRules prioritizes business user experience, performance, and reliability. It enables you to quickly create scalable decisions (rules), and manage multiple versions across multiple workspaces.

Its purpose is to help you with:

🎯 Building simple and intuitive decisions.

🚀 Deploying changes safely across multiple environments.

📂 Organising decisions better in a file-like system and across multiple internal projects.

🔍 Tracking all changes made within the system using an audit log.

Quickstart

Local using Docker Compose

Copy the following contents to docker-compose.yml file and run docker-compose up. Then visit http://localhost:9080.

version: '3.8'

services:
  admin:
    image: 'gorules/brms'
    ports:
      - '9080:80'
    depends_on:
      - pg-database
    environment:
      DB_HOST: pg-database
      DB_PORT: 5432
      DB_USER: my-user
      DB_PASSWORD: my-password
      DB_NAME: test-db
      DB_SSL_DISABLED: true
      LICENSE_KEY: 'my-license-key' # Obtain it from https://portal.gorules.io

  pg-database:
    image: 'postgres'
    environment:
      POSTGRES_USER: my-user
      POSTGRES_PASSWORD: my-password
      POSTGRES_DB: test-db
    ports:
      - '5432:5432'
Local using Docker

Similarly to above, you need to spawn a postgres database. You can do so by running docker run --env-file db.env postgres.

Afterwards, create a file containing minimal set of environment variables, and run docker run --env-file app.env.

Environment variables

Minimal Set

Below is the minimal set of environment variables you need to use in order to deploy GoRules BRMS:

DB_HOST=        # Database Host
DB_USER=        # Database User
DB_PASSWORD=    # Database Password
DB_NAME=        # Database Name

LICENSE_KEY=    # License Key obtained from https://portal.gorules.io
Advanced Options
# General
APP_NAME=GoRules                  # App name (optional)
APP_URL=http://localhost:4200     # App url (optional)
HOME_URI=/                        # Home URI (optional)

# Database
DB_PORT=5432                     # Database port (optional)
DB_LOGGING=false                 # Database logging (optional)
DB_SYNCHRONIZE=false             # Enable automatic model synchronization (optional)
DB_MIGRATE=true                  # Enable database migration (optional)
DB_REJECT_UNAUTHORIZED=false      # Reject unauthorized access for the database. Acts as an SSL bypass. (optional)
DB_SSL_DISABLED=false            # Disable database SSL
DB_SSL_CA=                       # Database SSL Certificate Authority (CA) - base64 encoded. You can use https://gorules.io/tools/base64-certificate to encode your certificate
DB_SSL_CERT=                     # Database SSL Certificate
DB_SSL_KEY=                      # Database SSL Key
DB_SSL_ADVANCED                  # Advanced SSL Settings provided in JSON. Overrides all DB SSL settings. See https://microsoft.github.io/PowerBI- JavaScript/interfaces/_node_modules__types_node_tls_d_._tls_.tlsoptions.html for more details

# Authentication and security
SESSION_DURATION_MINUTES=1440   # Duration of signin in minutes (optional)
COOKIE_SECRET=cookie-secret     # Cookie secret (optional) - should be changed

# Email configuration (User invites, authentication, etc) - leave empty to use the GoRules emailing service
EMAIL_ENABLED=true               # Enable email authentication (optional)
EMAIL_URL=https://portal.gorules.io   # URL for email (optional)
EMAIL_FROM=noreply@gorules.io    # Email from (optional)
EMAIL_HOST=                      # SMTP Email host (optional)
EMAIL_PORT=                      # SMTP Email port (optional)
EMAIL_SECURE=false               # SMTP Email secure flag (optional)
EMAIL_TLS_REJECT_UNAUTHORIZED=   # SMTP Email reject unauthorized (optional)
EMAIL_AUTH_USER=                 # SMTP Auth User (optional)
EMAIL_AUTH_PASS=                 # SMTP Auth Pass (optional)

# Microsoft Azure AD OpenID Connect (Business plan+) - available from v1.6.0
SSO_OAUTH2_PROVIDER=azure
SSO_OAUTH2_CLIENT_ID=
SSO_OAUTH2_CLIENT_SECRET=
SSO_OAUTH2_SCOPES=openid email profile
SSO_OAUTH2_AUTH_URL=             #example https://login.microsoftonline.com/<tenant_uuid>/oauth2/v2.0/authorize
SSO_OAUTH2_TOKEN_URL=            #example https://login.microsoftonline.com/<tenant_uuid>/oauth2/v2.0/token
SSO_OAUTH2_AUTHORITY_URL=        #example https://login.microsoftonline.com/<tenant_uuid> - important for a single tenant setup
SSO_OAUTH2_GROUPS_MAPPING=group_uuid->admin

#OR

# Okta OpenID Connect (Business plan+)  available from v1.6.0
SSO_OAUTH2_PROVIDER=okta
SSO_OAUTH2_CLIENT_ID=
SSO_OAUTH2_CLIENT_SECRET=
SSO_OAUTH2_SCOPES=openid email profile groups
SSO_OAUTH2_AUTH_URL=           #example https://<domain>.okta.com/oauth2/v1/authorize
SSO_OAUTH2_TOKEN_URL=.         #example https://<domain>.okta.com/oauth2/v1/token
SSO_OAUTH2_GROUPS_MAPPING=     #example brms_admin->admin,brms_author->author

Docker Pull Command

docker pull gorules/brms