Skip to content

Amsterdam/openstad-api

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

openstad-api

Setup

1. Installatie

[email protected]:Amsterdam/openstad-api.git
cd openstad-api
npm i

2. Maak een lokale configuratie file ./config/local.js

module.exports = {

  "url": "URL",
  "hostname": "DOMAIN",

  "database": {
    "user": "DB_USERNAME",
    "password": "DB_PASSWORD",
    "database": "DB_NAME",
    "host": "DB_HOST",
    "dialect": "DB_DIALECT",
    "multipleStatements": true
  },

  "express": {
    "port": PORT
  },

  "mail": {
    "from": "EMAIL_ADDRESS",
    "transport": {
      "smtp": {
        "port": SMTP_PORT,
        "host": "SMTP_HOST",
        "auth": {
          "user": "SMTP_USERNAME",
          "pass": "SMTP_PASSWORD"
        }
      }
    }
  },

  "security": {
  },

  "authorization": {
    "jwt-secret": "MIJNOPENSTAD_JWT_SECRET",
    "auth-server-url": "MIJNOPENSTAD_URL",
    "auth-client-id": "MIJNOPENSTAD_DEFAULT_CLIENT_ID",
    "auth-client-secret": "MIJNOPENSTAD__CLIENT_PASSWORD",
    "auth-server-login-path": "/dialog/authorize?redirect_uri=[[redirectUrl]]&response_type=code&client_id=[[clientId]]&scope=offline",
    "auth-server-exchange-code-path": "/oauth/token",
    "auth-server-get-user-path": "/api/userinfo?client_id=[[clientId]]",
    "auth-server-logout-path": "/logout?clientId=[[clientId]]",
    "after-login-redirect-uri": "/?jwt=[[jwt]]",
    "fixed-auth-tokens": [
      {
        "token": "12345",
        "userId": "2"
      }
    ]
  }
}

3. Initeëer de database

For a successful reset run, make sure the following ENV values are properly set:

#unique hash
FRONTEND_URL=
AUTH_URL=

#unique hash
AUTH_FIRST_CLIENT_SECRET=
AUTH_FIRST_CLIENT_ID=

#for instance = http://localhost:4444|https://admin.openstad.demo
ADMIN_URL=
#optional
AUTH_INTERNAL_SERVER_URL=

Then run following command:

env ... node reset.js

If you are using an existing database and only want to migrate run the following command:

node -r dotenv/config migrate.js

4. Start de server

node server.js

5. Run tests

There are several test scripts:

  1. npm run test For all tests scenarios
  2. npm run test:unit For all unit tests
  3. npm run test:e2e For all e2e tests

Travis CI

GITOPS

Gitops steps:

  • Test application
  • Generate assets
  • Build docker image
  • Push docker image
  • Commit new image to helm repo (based on GITOPS_RELEASE_BRANCH and GITOPS_{environment}_VALUES_FILE )

If you want to enable gitops flow in the ci pipeline of travis you need to configure a few variables:

  • GITOPS=true
  • DOCKER_PUBLIC_USERNAME=openstad
  • DOCKER_IMAGE_NAME=api
  • HELM_REPO_NAME=openstad-kubernetes
  • HELM_CHART_FOLDER=k8s/openstad
  • GITOPS_RELEASE_BRANCH=master
  • GITOPS_DEV_VALUES_FILE=k8s/openstad/environments/dev.values.yaml
  • GITOPS_ACC_VALUES_FILE=k8s/openstad/environments/acc.values.yaml
  • GITOPS_PROD_VALUES_FILE=k8s/openstad/environments/prod.values.yaml

MySQL with SSL

When you want to connect to a MySQL server using SSL, a Certificate Authority certificate is required. The contents of this CA certificate can be passed into the MYSQL_CA_CERT environment variable.

Documentatie

Meer informatie staat in de docs directory.

About

OpenStad API server

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 92.7%
  • Nunjucks 5.6%
  • Other 1.7%