Commit 4b3816ce authored by James Kirk's avatar James Kirk
Browse files

refactor: removed MQ_HOST outside of compose

fix: added shebang to run-compose
refactor: DATA_DIR used in container as well as external to it
parent 89401ce8
MQ_HOST=rmq
# DATA_DIR=
# SOAR_TOKEN_LIFETIME=
# SOAR_TOKEN_SECRET=
\ No newline at end of file
......@@ -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()
......
......@@ -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
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):
......
#! /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
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment