From 55f725a502011155f0943f2340ef3763f014ccc0 Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Sun, 26 Apr 2020 15:48:24 +0300 Subject: Initial commit --- postgrest/Dockerfile | 6 ++++++ postgrest/migrations/001-initial.sql | 1 + postgrest/migrations/002-todos.sql | 9 +++++++++ postgrest/migrations/003-roles.sql | 15 +++++++++++++++ postgrest/postgrest | Bin 0 -> 44823944 bytes postgrest/postgrest.conf | 4 ++++ postgrest/start-postgrest.sh | 5 +++++ 7 files changed, 40 insertions(+) create mode 100644 postgrest/Dockerfile create mode 100644 postgrest/migrations/001-initial.sql create mode 100644 postgrest/migrations/002-todos.sql create mode 100644 postgrest/migrations/003-roles.sql create mode 100755 postgrest/postgrest create mode 100644 postgrest/postgrest.conf create mode 100755 postgrest/start-postgrest.sh (limited to 'postgrest') diff --git a/postgrest/Dockerfile b/postgrest/Dockerfile new file mode 100644 index 0000000..5e6abac --- /dev/null +++ b/postgrest/Dockerfile @@ -0,0 +1,6 @@ +FROM ubuntu:18.04 + +WORKDIR /app +RUN apt-get update && apt-get install -y libpq-dev gettext +ADD postgrest postgrest.conf start-postgrest.sh ./ +CMD ["./start-postgrest.sh"] diff --git a/postgrest/migrations/001-initial.sql b/postgrest/migrations/001-initial.sql new file mode 100644 index 0000000..be41377 --- /dev/null +++ b/postgrest/migrations/001-initial.sql @@ -0,0 +1 @@ +create schema api; diff --git a/postgrest/migrations/002-todos.sql b/postgrest/migrations/002-todos.sql new file mode 100644 index 0000000..5efb477 --- /dev/null +++ b/postgrest/migrations/002-todos.sql @@ -0,0 +1,9 @@ +create table api.todos ( + id serial primary key, + done boolean not null default false, + task text not null, + due timestamptz +); + +-- insert into api.todos (task) values +-- ('finish tutorial 0'), ('pat self on back'); diff --git a/postgrest/migrations/003-roles.sql b/postgrest/migrations/003-roles.sql new file mode 100644 index 0000000..86e49f0 --- /dev/null +++ b/postgrest/migrations/003-roles.sql @@ -0,0 +1,15 @@ +-- authenticator role +create role authenticator noinherit login password 'mysecretpassword'; + +-- web_anon role +create role web_anon nologin; +grant usage on schema api to web_anon; +grant web_anon to authenticator; +-- grant select on api.todos to web_anon; + +-- todo_user role +create role todo_user nologin; +grant usage on schema api to todo_user; +grant all on api.todos to todo_user; +grant usage, select on sequence api.todos_id_seq to todo_user; +grant todo_user to authenticator; diff --git a/postgrest/postgrest b/postgrest/postgrest new file mode 100755 index 0000000..9050387 Binary files /dev/null and b/postgrest/postgrest differ diff --git a/postgrest/postgrest.conf b/postgrest/postgrest.conf new file mode 100644 index 0000000..638b528 --- /dev/null +++ b/postgrest/postgrest.conf @@ -0,0 +1,4 @@ +db-uri = "postgres://authenticator:mysecretpassword@postgres:5432/postgres" +db-schema = "api" +db-anon-role = "web_anon" +jwt-secret = "${JWT_SECRET}" diff --git a/postgrest/start-postgrest.sh b/postgrest/start-postgrest.sh new file mode 100755 index 0000000..5995898 --- /dev/null +++ b/postgrest/start-postgrest.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +envsubst < postgrest.conf > postgrest.conf.tmp +mv postgrest.conf.tmp postgrest.conf +./postgrest postgrest.conf -- cgit v1.3