diff --git a/.env b/.env index 107450b026ab6b82ab25250281a796210ba6b83a..f6fbd3965a739d760c4adf57e524a622ed52ca66 100644 --- a/.env +++ b/.env @@ -1,4 +1,3 @@ -MQ_HOST=rmq # DATA_DIR= # SOAR_TOKEN_LIFETIME= # SOAR_TOKEN_SECRET= \ No newline at end of file diff --git a/README.md b/README.md index 29b10f290ab9bbcbc6f4f25ae6a59720564f4b79..a2b15ce75a8f3c90c8145fdd82eb15a3e2e5b3e7 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,6 @@ Subsequent requests to the client endpoint return the client_id but not the secr Using `docker-compose` will mean that everything is setup automatically, this includes the `rabbitmq` container, the backbone API, and the backbone bus. The `run-compose.sh` script has been provided to simplify this even further - all you have to do is set whatever env vars you need in the `.env` file and then run `./run-compose.sh` (the defaults in `.env` are fine for local dev work, but ones not labelled `optional` will need setting in a production setting). The env vars are: -- `MQ_HOST` - The hostname of our `rabbitmq` instance. This defaults to `rmq` which matches the container name of the `rabbitmq` instance in the compose yaml file - `DATA_DIR` - Where to mount the volume of the API container on your local system. This defaults to the result of `pwd`, which should be within the `communications-backbone` repo - `SOAR_TOKEN_LIFETIME` (Optional) - The number of hours until a newly created token expires - `SOAR_TOKEN_SECRET` (Optional) - A secret key used to encrypt/decrypt token data. If specified the value should be set using TokenModel.getKey() diff --git a/docker/docker-compose.yaml b/docker/docker-compose.yaml index b2b629c652a43bcb33ef22cfdd41e9e9e151706c..8e282abdaeb9c5a39471abd8c6fa14cc789b1a58 100644 --- a/docker/docker-compose.yaml +++ b/docker/docker-compose.yaml @@ -18,7 +18,7 @@ services: depends_on: - rabbitmq__local environment: - - MQ_HOST=${MQ_HOST} + - MQ_HOST=rmq command: "soar_bus.py" soar_api: @@ -33,7 +33,7 @@ services: depends_on: - rabbitmq__local environment: - - MQ_HOST=${MQ_HOST} + - MQ_HOST=rmq volumes: - - ${DATA_DIR}/data:/data + - ${DATA_DIR}/data:${DATA_DIR}/data command: "api.py" \ No newline at end of file diff --git a/endpoints/token.py b/endpoints/token.py index 0d040b4d2371e8957ca3f2bebe9563999db2288e..9448bf8b7a2b6b3f1426cb9c4a942f3146c307b9 100644 --- a/endpoints/token.py +++ b/endpoints/token.py @@ -1,9 +1,9 @@ import json from flask_restful import Resource, request, abort from marshmallow import Schema, fields -import pika from models.token import TokenModel +import os class TokenQuerySchema(Schema): client_id = fields.Str(required=True) @@ -18,7 +18,8 @@ class Token(Resource): def __init__(self): self.schema = TokenQuerySchema() self.model = TokenModel() - with open("/data/clients.json", "r") as clients_file: + data_dir = os.getenv("DATA_DIR", "/data") + with open(data_dir + "/clients.json", "r") as clients_file: self.clients = json.load(clients_file) def get(self): diff --git a/run-compose.sh b/run-compose.sh index eb6ff2d76047c9170bed940309784dae6f703816..a5b16a0b2b81b1d99fa5e9e8005d08a295fc4b28 100755 --- a/run-compose.sh +++ b/run-compose.sh @@ -1,3 +1,5 @@ +#! /usr/bin/env bash + set -a source .env @@ -5,8 +7,4 @@ if [[ -z "${DATA_DIR}" ]]; then DATA_DIR=$(pwd) fi -if [[ -z "${MQ_HOST}" ]]; then - MQ_HOST=rmq -fi - docker-compose -f docker/docker-compose.yaml up --build \ No newline at end of file