Go to file
Michael Hoennig feff1b5794 RBAC documentation improved, but still WIP 2022-07-28 12:15:32 +02:00
.run introduce referential integrity for role identification - part 2 assume 2022-07-28 10:43:23 +02:00
adr removing JHipster 2022-07-22 13:31:37 +02:00
sql RBAC documentation improved, but still WIP 2022-07-28 12:15:32 +02:00
.aliases improved README.md with aliases for pg-sql-... 2022-07-28 10:43:49 +02:00
.editorconfig removing JHipster 2022-07-22 13:31:37 +02:00
.gitattributes Initial application generated by JHipster-5.8.2 2019-04-01 13:14:56 +02:00
.gitignore .gitignore /worktrees/ 2019-05-07 12:45:15 +02:00
Glossary.md removing JHipster 2022-07-22 13:31:37 +02:00
README.md improved README.md with aliases for pg-sql-... 2022-07-28 10:43:49 +02:00


hsadminNg Development

Setting up the Development Environment

PostgreSQL Server

So far the spike contains almost only PostgreSQL Code. All you need so far, is a PostgreSQL database, for now with full admin rights. The easiest way to set it up is using docker.

(Find the mentioned aliases in .aliases.)

Initially, pull an image compatible to current PostgreSQL version of Hostsharing:

docker pull postgres:13.7-bullseye

If we switch the version, please also amend the documentation as well as the aliases file. Thanks!

Create and run a container with the given PostgreSQL version:

docker run --name hsadmin-ng-postgres -e POSTGRES_PASSWORD=password -p 5432:5432 -d postgres:13.7-bullseye

# or via alias: 

To check if the PostgreSQL container is running, the following command should list a container with the name "hsadmin-ng-postgres":

docker container ls 

Stop the PostgreSQL container:

docker stop hsadmin-ng-postgres
# or via alias: pg-sql-stop

Start the PostgreSQL container again:

docker container start hsadmin-ng-postgres
# or via alias: pg-sql-start

Remove the PostgreSQL container:

docker rm hsadmin-ng-postgres

# or via alias:

To reset to a clean database, use:

pg-sql-stop; pg-sql-remove; pg-sql-run

# or via alias:

After the PostgreSQL container is removed, you need to create it again as shown in "Create and run ..." above.

Given the container is running, to create a backup in ~/backup, run:

docker exec -i hsadmin-ng-postgres /usr/bin/pg_dump --clean --create -U postgres postgres | gzip -9 > ~/backup/hsadmin-ng-postgres.sql.gz

# or via alias:
pg-sql-backup >~/backup/hsadmin-ng-postgres.sql.gz

Again, given the container is running, to restore the backup from ~/backup, run:

gunzip --stdout --keep ~/backup/hsadmin-ng-postgres.sql.gz | docker exec -i hsadmin-ng-postgres psql -U postgres -d postgres

# or via alias:
pg-sql-restore <~/backup/hsadmin-ng-postgres.sql.gz

Markdown with PlantUML plugin

Can you see the following diagram?

me -> you: Can you see this diagram?
you -> me: Sorry, I don't :-(
me -> you: Install some tooling!

If not, you need to install some tooling.

for IntelliJ IDEA (or derived products)

You just need the bundled Markdown plugin enabled and install and activate the PlantUML plugin in its settings:


You might also need to install Graphviz on your operating system. For Debian-based Linux systems this might work:

sudo apt install graphviz

Ubuntu Linux command line

sudo apt-get install pandoc texlive-latex-base texlive-fonts-recommended texlive-extra-utils texlive-latex-extra pandoc-plantuml-filter
pandoc --filter pandoc-plantuml rbac.md -o rbac.pdf

for other IDEs / operating systems

If you have figured out how it works, please add instructions above this section.

Running the SQL files


If you run the numbered SQL files from the sql folder in the defined order, a working RBAC system is built up in the database including test data and some simple tests.

To increase the amount of test data, simply increase the number of generated customers in 21-hs-customer.sql.

If you already have data, e.g. for customers 0..999 (thus with reference numbers 10000..10999) and want to add another 1000 customers, amend the for loop to 1000...1999 and also uncomment and amend the CONTINUE WHEN or WHERE conditions in the other test data generators, using the first new customer reference number (in the example that's 11000).

For Historization

You can explore the historization prototype as follows:

  • start with an empty database (the example tables are currently not compatible with RBAC),
  • then run historization.sql,
  • finally run examples.sql.