Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
916 commits
Select commit Hold shift + click to select a range
6a99da1
Extract the bearer token only from the HTTP auth header (this works w…
Jan 14, 2026
101dc51
Protect all same-site queries from antiforgery except those originati…
Jan 15, 2026
7d994aa
Preserve only the necessary claims in the cookie and move token logic…
Jan 16, 2026
a1b7370
Make user-info fields for which we do not have the scope nullable
Jan 16, 2026
00adc90
Use message from `App` (instead of `messageApi`)
Jan 16, 2026
c9819e6
Set permissions of environment files with secrets to 600
Jan 21, 2026
68e4542
Assert that all variables in `./.env.sample` are available in `./.env…
Jan 26, 2026
94de0f1
Compare .env with production sample
Jan 26, 2026
c369d71
Add frontend environment samples for production and staging
Jan 26, 2026
8fcc527
Mention environment-specific .env file in README
Jan 26, 2026
cbdf915
Use minimal required OpenId Connect scopes
Jan 26, 2026
c08120c
Wait for services to be healthy when up"ing" and also when depending …
Jan 27, 2026
c878cae
Add home directory to user and also check production and staing envir…
Jan 28, 2026
e7a2dd7
Pass .env file explicitly to docker compose
Jan 28, 2026
3476ef9
Use `required` as error message when variable is missing
Jan 29, 2026
8c88770
Use unix end of lines
Jan 29, 2026
99f8c2d
Lint and fix docker (compose) files and run scripts in bash strict mode
Jan 29, 2026
85cc404
Format code with `dotnet format`
Jan 29, 2026
6844026
Listen on all network interfaces
Jan 29, 2026
90ed14a
Allow empty string for relay allowed emails
Jan 29, 2026
cd34156
Allow empty string for relay SMTP host
Jan 29, 2026
934f29e
Allow `./` to be copied in Dockerfile-production (running `docker com…
Jan 29, 2026
02e98c6
Chain commands with &&
Jan 29, 2026
01e2f05
Mention how to use a mutation directly
Jan 29, 2026
c362bba
Fail if a transaction needs to be rolled back during migration
Jan 30, 2026
ef6fdb5
Add missing (
Jan 30, 2026
d91bce6
Find bash in PATH
Feb 2, 2026
3697953
Sync Postgres versions
Feb 2, 2026
b989941
Format Dockerfiles with `make format`
Feb 2, 2026
2257737
Use dotenv-linter to lint and fix .env files
Feb 2, 2026
36c3b87
Switch .env diff order to improve error output
Feb 2, 2026
dc1dd28
Improve healthcheck
Feb 2, 2026
2166290
Send logs and metrics to an OTLP gPRC source
Feb 4, 2026
8d70276
Update JsonPath.Net package
Feb 4, 2026
b673e5f
Add application lifecycle healthcheck
Feb 4, 2026
df4e49d
Make JSON controller actions show up in OpenAPI document --- resolves…
Feb 5, 2026
734245b
Remove file extension and size checks from file uploads and protect t…
Feb 5, 2026
83e99d7
Improve GraphQL error logging
Feb 5, 2026
2687b68
Set autoheal label used by the autoheal service of the machine projec…
Feb 5, 2026
7f71dab
Pass database information via environment variables instead of appset…
Feb 5, 2026
e409871
Separate development and production environments cleanly
Feb 5, 2026
5069298
Separate domain name and subdomain
Feb 6, 2026
bda8e43
Remove unsued email sender
Feb 6, 2026
e4af6e9
Store PostgreSQL password in .env file
Feb 6, 2026
119fb8c
Align development and production docker compose setup
Feb 6, 2026
0fa9f99
Set `COMPOSE_BAKE=true` globally and remove by now unnecessary `COMPO…
Feb 6, 2026
cfd1603
Put docker remote control into `docker.mk` for development and produc…
Feb 6, 2026
7610955
Simplify make targets and correct examples
Feb 6, 2026
8b0eff2
Add subdomain to extra hosts
Feb 6, 2026
f24b2b5
Suppress browser refresh
Feb 6, 2026
42f1a18
Remove empty services
Feb 6, 2026
32d24d5
Add missing shebang lines
Feb 6, 2026
e1bae08
Place argument after target
Feb 6, 2026
4e86839
Start nginx even if some services are unhealthy to make at least the …
Feb 6, 2026
ed9db69
Specify the depends-on condition explicitly
Feb 6, 2026
8f99b73
Add scheme to metabase host
Feb 6, 2026
53c15f8
Remove unused email setup
Feb 6, 2026
56462a7
Log GraphQL query and variables in debug mode
Feb 6, 2026
d0f3231
Silence `rm` even if the glob pattern matches no files
Feb 6, 2026
7384edf
Fix GNU Make target `sql`
Feb 6, 2026
3455a52
Shorten service deployment name
Feb 6, 2026
31720a1
Relax depend condition even further
Feb 6, 2026
4645efd
Allow big cookies and unrestricted body sizes
Feb 6, 2026
70497c0
Do not compare ports of host and origin or referer (because they may …
Feb 6, 2026
d4af32c
Use `docker compose` directly
Feb 7, 2026
a8f5322
Make the development environment be as close to the production one as…
Feb 7, 2026
02523e3
Upgrade dotnet tools
Feb 7, 2026
5715274
Do not bake absolute URLs into the frontend; Include and exclude cont…
Feb 11, 2026
80c2ff5
Make Next.JS produce minimal standalone output for production
Feb 11, 2026
24e4a06
Allow production build to copy GraphQL schema, images, and stylesheets
Feb 11, 2026
6c2f4b3
Do not store GnuPG keys in files: In development use a volume (and ma…
Feb 11, 2026
b333463
Fix building production images locally
Feb 11, 2026
0d9f47d
Add missing files archive name
Feb 11, 2026
077bdeb
Correct GnuPG mount points
Feb 11, 2026
5dfee8d
Do not use GnuPG agent of host machine in production (GnuPG versions …
Feb 12, 2026
bca7b43
Load antiforgery token before rendering the page
Feb 12, 2026
93df6e6
Remove unused forking connection
Feb 12, 2026
558cae3
Use `modal` from `useApp`
Feb 12, 2026
05e0ba0
Reduce error information shown to user
Feb 12, 2026
178e017
Use " around bash variables and use bash strict mode
Feb 14, 2026
f9070df
Declare gnupg volume
Feb 14, 2026
666b200
Remove unused imports
Feb 14, 2026
1df88cf
Add bootstrap service to production environment
Feb 14, 2026
bc5018f
Do not populate GnuPG *.conf files
Feb 14, 2026
cb13ef3
Stay root in production for bootstrapping GPG keys
Feb 14, 2026
535c38d
Use the standard backend image for bootstrapping
Feb 14, 2026
5cf5e6b
Simplify database management commands and use the backend service for…
Feb 14, 2026
3938db3
Ignore the stored target file
Feb 14, 2026
d754bed
Start and stop the backend service when needed due to database changes
Feb 15, 2026
3b8c045
Impose CPU limits
Feb 15, 2026
98944f0
Remove `--update=non` from copy because it is not yet supported in de…
Feb 15, 2026
05e4073
Use `-` for lists instead of `[ .. ]` in yaml because it has less con…
Feb 15, 2026
6ce0e45
Customize filter convention naming scheme to align filter names with …
Feb 15, 2026
db60ebf
Correct flag name and add scalars
Feb 15, 2026
c91cb0f
Mention changes to JWT certificates and GnuPG keys management and to …
Feb 16, 2026
2a5c8f8
Use the built-in Index method (instead of the custom WithIndex extens…
Feb 16, 2026
d9f5c71
Improve implemention of `InClosedInterval`
Feb 16, 2026
86e1ab1
Extract scalar filter types
Feb 16, 2026
c3d6556
Upgrade baseline browser mapping properly
Feb 16, 2026
75b77c5
Do not wait for container to become healthy when restarting due to ra…
Feb 18, 2026
231fe7e
Do not recreate or start dependencies for management commands
Feb 18, 2026
e368ffd
Fine-tune docker healthcheck timing
Feb 18, 2026
3714662
Tune docker compose up and exec usage --- never build, run dependenci…
Feb 18, 2026
fa71cf7
Never mark an upstream server as down (because we only have one optio…
Feb 18, 2026
9cf576b
Do not start dependencies to access the files volume
Feb 18, 2026
d5b3e08
Resolve IPs dynamically every 5 seconds to avoid stale IPs that may h…
Feb 18, 2026
6b0d65b
Clean-up anonymous volumes with `make down`
Mar 2, 2026
f27f551
Include response message when HTTP request fails
Mar 10, 2026
17e77df
Correct development setup guide
Mar 11, 2026
2de4112
Add configs for prettier, sqlfluff, and biome dev tools
Mar 11, 2026
c559077
Fix typo
Mar 11, 2026
4cb551c
Update browser mapping
Mar 11, 2026
2bc0207
Assert that symlinks are set up correctly
Mar 12, 2026
e2c8815
Increase retries to wait longer for services to become healthy
Mar 16, 2026
f8af891
Add domain life-cycle data
Mar 16, 2026
9da4f0b
Use the dotnet tool dotnet-outdated-tool to update packages
Mar 16, 2026
504bcfd
Make gpg.mk available to the bootstrap service
Mar 16, 2026
2a11775
Add default directories for backup and restore
Mar 17, 2026
f4c7df9
Only ask for current institution from metabase (instead of current ap…
Mar 17, 2026
72db153
Level-up the deploy and rollback scripts to handle errors more gracef…
Mar 17, 2026
309e615
Add pull policies to each individual service
Mar 17, 2026
9c86adb
Log errors in GraphQL responses made to other GraphQL APIs
Mar 17, 2026
36c0d2b
Register the `GetUserInfo` service and aid debugging of GraphQL serve…
Mar 17, 2026
68e4c74
Use variable size collections for Entity Framework Core properties
Mar 18, 2026
5187c3d
Correct spelling errors
Mar 18, 2026
29b315c
Configure psql
Mar 18, 2026
4937822
Correct BOMs
Mar 18, 2026
4717de0
No Byte-Order Mark please
Mar 18, 2026
204c252
Put .env into /app/data
Mar 18, 2026
5b21054
Add `--check` to `build` target (because `--check` is not a dry-run c…
Mar 20, 2026
078c5a3
Log Apollo Client errors and filter "AUTH_NOT_AUTHENTICATED" errors
Mar 20, 2026
319a926
Align names of params with then ones of the overridden methods
Mar 20, 2026
5ae799b
Add explicit excludes to have views compile properly (I have no idea …
Mar 20, 2026
3858a77
Fine-tune nginx config
Mar 22, 2026
1cd930a
Upgrade to Ant.Design 6
Mar 22, 2026
7e86b0d
Do not use deprecated features and display errors in `ErrorAlert`
Mar 22, 2026
ffab250
Correct type of file meta information list
Mar 23, 2026
60e987f
Correct data format index
Mar 23, 2026
9b8b32f
Name the reverse proxy service `reverse_proxy` (in accordance with th…
Mar 23, 2026
553ab4b
Return informative JSON error responses for proxy level errors
Mar 23, 2026
d05d6f4
Remove `--check` from `build` (it makes the `frontend` image not buil…
Mar 24, 2026
dedf0d5
Correct example to make help text work
Mar 24, 2026
d7a65d0
Convert date-time to UTC
Mar 24, 2026
dde8902
Convert date-time with offset to UTC
Mar 24, 2026
7a97e3d
Make file restore work in development
Mar 24, 2026
24494fa
Allow Next.JS to use web sockets in development
Mar 24, 2026
33c44d8
Do not buffer file uploads in reverse proxy
Mar 24, 2026
b73ea62
Remove outdated frontend README
Mar 25, 2026
ac3cf2e
Set GnuPG fingerprint for bootstrapping the GnuPG key
Mar 25, 2026
78a906f
Separate running tests from listing tests
Mar 25, 2026
f6db19f
Clean-up registration of compile, content, and watch items
Mar 25, 2026
1d2c240
Build PostgreSQL connection string in C# to allow for replacing only …
Mar 25, 2026
56c4e67
Use the new Microsoft.Testing.Platform as test platform and stay with…
Mar 25, 2026
112a989
Include props file with common csproj settings in the Dockerfile
Mar 26, 2026
189ca92
Tell what to do when migrations are pending or missing
Mar 28, 2026
f4bc6a7
Emit compiler generated files to ease debugging
Apr 1, 2026
8a33cf1
Use HotChocolate run method to support for example exporting the sche…
Apr 1, 2026
d0ad9ff
Document environment and target variables
Apr 18, 2026
03af9ce
Using branch as deploy target is problematic
Apr 18, 2026
af4870b
Add placeholder for GnuPG fingerprint
Apr 24, 2026
a8a333d
Proxy Next.JS static assets properly
Apr 24, 2026
752209a
Install GNU Make in production image to run `./gpg.mk` GNU Make targets
Apr 24, 2026
9c6e4c5
Rename `./docker.mk bootstrap` to `./docker.mk manage` (it can also b…
Apr 24, 2026
226b487
Update the frontend
christoph-maurer Apr 27, 2026
d0127e9
Use ' instead of ` (because latter is treated as command substitution)
Apr 28, 2026
8776880
Track files named *.large.* with Git LFS
Apr 28, 2026
5f83d03
Remove unnecessary full-path Git LFS file tracking
Apr 28, 2026
1b21489
Add steps for the very first deployment
Apr 28, 2026
7880c3c
Make authentication for file-uploads via the authentication scheme op…
May 12, 2026
ab23b66
Map `allowedUserAndQuantity` dictionary to `jsonb` column (which in p…
May 18, 2026
d2efe79
Disable request size limit imposed by the web server Kestrel (it is a…
Jun 2, 2026
52e4dc0
Upgrade to HotChocolate 16
May 20, 2026
7bcbf43
Level-up the user interface
May 27, 2026
c8c982c
Upgrade Docker images and upgrade PostgreSQL to the latest major vers…
May 28, 2026
f5d47b5
Align placeholders
May 28, 2026
077178d
Add pull policy to PostgreSQL upgrade service
Jun 1, 2026
342fdbc
Increase maximum GraphQL field and type cost
Jun 1, 2026
dff7437
Remove obsolete checks for whether router is ready
Jun 2, 2026
2d49371
Add error view to display on OpenID Connect client errors
Jun 2, 2026
0aa458f
Revamp access policies
Jun 3, 2026
dcdd93f
Treat local and global access policies in the same way
Jun 8, 2026
c5ab472
Only pull when missing in development
Jun 11, 2026
2e7015d
Add global data access policy
Jun 11, 2026
e29092c
Authorize user or institution against the metabase in the authenticat…
Jun 11, 2026
d409093
Make sure that root resource cannot be deleted without the correspond…
Jun 11, 2026
8ea2901
Use the same path to upload and download resources (RESTful API) and …
Jun 11, 2026
c8392fd
Add migration that asserts existence of access policy and root resour…
Jun 11, 2026
cc73fde
Construct path to controller action properly using `LinkGenerator` wh…
Jun 11, 2026
20626b4
Use RESTful API for file upload in frontend
Jun 11, 2026
dee17a7
Repair some PostgreSQL triggers, fix nested frontend filters, use new…
Jun 12, 2026
9e42963
Add GraphQL fields to check access policies
Jun 15, 2026
7229d6f
Add filterable queries for user, institution, and application access …
Jun 15, 2026
63d4dcd
Add GraphQL fields to test whether access is allowed for anyone and f…
Jun 16, 2026
ba267c7
Start dependencies when necessary
Jun 16, 2026
58c3f0b
Merge pull request #101 from building-envelope-data/upgrade-to-hotcho…
simonwacker Jun 16, 2026
626405f
Upgrade dependencies to latest compatible versions
Jun 16, 2026
e210afb
Convert properly between C# TimeSpan and NodaTime Duration and correc…
Jun 16, 2026
1bc0e40
Show only the icon for copying a GnuPG link
Jun 16, 2026
2c0084d
Mention how durations are represented
Jun 16, 2026
31c3227
Move body-size check for resource upload into /api/resources location
Jun 17, 2026
3d07596
Set authentication type explicitly for `Principal.Identity.IsAuthenti…
Jun 17, 2026
cb38f44
Fix permalink for entity summaries used on index pages
Jun 17, 2026
cb1ebb3
Add reload button to pagination and on empty results (to reload pagin…
Jun 17, 2026
e832801
Show formal signature of data approval only on demand
Jun 17, 2026
0641432
Simplify /api/resources/* setup
Jun 17, 2026
9fb392f
Map display name to name to match C# representation
Jun 18, 2026
72f52ec
Protect mutations and policies additionally through scope requirement…
Jun 18, 2026
48e508d
Rewrite file upload minimizing resource usage on multi-gigabyte uploa…
Jun 18, 2026
1e0042c
Update the GraphQL schema
Jun 18, 2026
49ecbc0
Do not use the write policy for now but just the authenticated policy…
Jun 18, 2026
a53f317
Report post-processing errors after a file was uploaded
Jun 18, 2026
51fcef5
Correct logging parameter name
Jun 18, 2026
03fa1d4
Use `Problem` instead of `ModelState` for consistent error reporting
Jun 19, 2026
dfdeca8
Add long description to GraphQL schema of the locale scalar
Jun 19, 2026
5f90db8
Define `TARGET` as empty if it is non-existent to not get a warning i…
Jun 19, 2026
f2c4962
Make pagination parameters and fields Relay compliant (meaning use `I…
Jun 19, 2026
ae432ff
Merge pull request #105 from building-envelope-data/make-graphql-sche…
simonwacker Jun 20, 2026
abd62e4
Make sure that distinct database contexts are used for data queries i…
Jun 20, 2026
2d1a9f2
Add test that checks whether the C# domain model matches the PostgreS…
Jun 20, 2026
32954cc
Fall back to the component ID if for some reason the component itself…
Jun 23, 2026
a91482b
Use fibonacci numbers for page sizes
Jun 24, 2026
2dd8e60
Make program startup cancellable and use `DisposeAsync` instead of `D…
Jun 24, 2026
61b93da
Add navigations form policy to user, institution, or OpenID Connect a…
Jun 24, 2026
0755397
Jump directly on select
Jun 24, 2026
8d99173
Access the current institution through the current OpenID Connect app…
Jun 24, 2026
9faf153
Use pg-schema-diff to compare the domain-model derived PostgreSQL sch…
Jun 25, 2026
622cda4
Adapt the help target such that it does not choke on the character `:…
Jun 26, 2026
21aad4d
Correct error message when Makefile is improperly linked
Jun 26, 2026
991ad3a
Ask metabase for client ID or authorized party of access token to use…
Jun 26, 2026
870acae
Add migration that adds `SOLAR_SCREEN` to the component subtype enume…
Jun 26, 2026
76a7e88
Make Git ignore deploy history files
Jun 26, 2026
7cd9689
Display data access policy on data page
Jun 27, 2026
ffcf60f
Improve presentation of data access policies
Jun 27, 2026
dbf5fac
Log non-sensitive variables in case a GraphQL query fails
Jun 28, 2026
c74ebbd
Link to OpenAPI schema and playground from uploading files
Jun 28, 2026
e200759
Pipe the query for meta information on data sets and the request for …
Jun 28, 2026
cb1858a
Tell to keep in sync with reverse proxy of machine
Jun 28, 2026
e13e401
Use `everyone allowed` instead of `anyone anyone` as it communicates …
Jun 29, 2026
4756d52
Inform user when a data set is not accessible due to data access policy
Jun 29, 2026
e5f6260
Make publishing state available via GraphQL
Jun 29, 2026
3bd1e63
Update GraphQL schema
Jun 29, 2026
bcf86c9
Fix the dotenv linter used to lint deployments
Jun 30, 2026
c48ef84
Increase max-allowed GraphQL costs (again) --- one issue is that the …
Jun 30, 2026
52f4fbb
Backup files such that there is at most one copy of each file using t…
Jun 30, 2026
d618051
Use the latest file extension to store resource content and for the f…
Jun 30, 2026
011a7de
Merge pull request #110 from building-envelope-data/content-addressab…
simonwacker Jun 30, 2026
5587519
Remove `--detach` from `git switch` when used with a release tag (it …
Jun 30, 2026
e65d36e
Defer deletion triggers of entities that can only be deleted together…
Jun 30, 2026
4b412a5
Prepare release v1.2.0
web-flow Jun 30, 2026
03d0cb8
Prepare changelog for next release
Jun 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
14 changes: 14 additions & 0 deletions .dclintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"$schema": "https://raw.githubusercontent.com/zavoloklom/docker-compose-linter/refs/heads/main/schemas/linter-config.schema.json",
"rules": {
"services-alphabetical-order": 0,
"require-quotes-in-ports": [
1,
{
"quoteType": "double"
}
]
},
"quiet": false,
"debug": true
}
28 changes: 28 additions & 0 deletions .env.development.sample
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
NAME=database
ENVIRONMENT=development

HOST=local.solarbuildingenvelopes.com
SUBDOMAIN=www
HTTP_PORT=8500
HTTPS_PORT=7501

METABASE_HOST=www.local.buildingenvelopedata.org
METABASE_HTTPS_PORT=7001

POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
POSTGRES_DATABASE_NAME=xbase

DATABASE_ID=8a27aa0d-6026-4124-b185-4efd5cead953
OPERATOR_ID=82b9f95c-3261-463a-90fe-0e9da707af17

OPEN_ID_CONNECT_CLIENT_ID=testlab-solar-facades
OPEN_ID_CONNECT_CLIENT_SECRET=secret

OPEN_TELEMETRY_HOST=host.docker.internal
OPEN_TELEMETRY_GRPC_PORT=4517

VERIFICATION_CODE=secret

GNUPG_SECRET_SIGNING_KEY_FINGERPRINT=
GNUPG_SECRET_SIGNING_KEY_PASSPHRASE=passphrase
26 changes: 19 additions & 7 deletions .env.production.sample
Original file line number Diff line number Diff line change
@@ -1,15 +1,27 @@
NAME=database_production
ENVIRONMENT=production
TARGET=

HOST=www.solarbuildingenvelopes.com
HOST=solarbuildingenvelopes.com
SUBDOMAIN=www
HTTP_PORT=8000

METABASE_HOST=www.buildingenvelopedata.org

ACCESS_TOKEN=
POSTGRES_USER=postgres
POSTGRES_PASSWORD=
POSTGRES_DATABASE_NAME=xbase

DATABASE_ID=8a27aa0d-6026-4124-b185-4efd5cead953
OPERATOR_ID=82b9f95c-3261-463a-90fe-0e9da707af17

OPEN_ID_CONNECT_CLIENT_ID=testlab-solar-facades
OPEN_ID_CONNECT_CLIENT_SECRET=

SMTP_HOST=mail-mtaKA26.fraunhofer.de
SMTP_PORT=25
RELAY_SMTP_HOST=
RELAY_SMTP_PORT=25
RELAY_ALLOWED_EMAILS=
OPEN_TELEMETRY_HOST=host.docker.internal
OPEN_TELEMETRY_GRPC_PORT=4317

VERIFICATION_CODE=

GNUPG_SECRET_SIGNING_KEY_FINGERPRINT=
GNUPG_SECRET_SIGNING_KEY_PASSPHRASE=
22 changes: 0 additions & 22 deletions .env.sample

This file was deleted.

26 changes: 19 additions & 7 deletions .env.staging.sample
Original file line number Diff line number Diff line change
@@ -1,15 +1,27 @@
NAME=database_staging
ENVIRONMENT=staging
TARGET=

HOST=staging.solarbuildingenvelopes.com
HOST=solarbuildingenvelopes.com
SUBDOMAIN=staging
HTTP_PORT=9000

METABASE_HOST=staging.buildingenvelopedata.org

ACCESS_TOKEN=
POSTGRES_USER=postgres
POSTGRES_PASSWORD=
POSTGRES_DATABASE_NAME=xbase

DATABASE_ID=8a27aa0d-6026-4124-b185-4efd5cead953
OPERATOR_ID=82b9f95c-3261-463a-90fe-0e9da707af17

OPEN_ID_CONNECT_CLIENT_ID=testlab-solar-facades
OPEN_ID_CONNECT_CLIENT_SECRET=

SMTP_HOST=email
SMTP_PORT=25
RELAY_SMTP_HOST=mail-mtaKA26.fraunhofer.de
RELAY_SMTP_PORT=25
RELAY_ALLOWED_EMAILS=
OPEN_TELEMETRY_HOST=host.docker.internal
OPEN_TELEMETRY_GRPC_PORT=4317

VERIFICATION_CODE=

GNUPG_SECRET_SIGNING_KEY_FINGERPRINT=
GNUPG_SECRET_SIGNING_KEY_PASSPHRASE=
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.large.* filter=lfs diff=lfs merge=lfs -text
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@v1
with:
dotnet-version: 5.0.x
dotnet-version: 7.0.x
- name: Restore dependencies
working-directory: ./backend
run: dotnet restore
Expand Down
23 changes: 23 additions & 0 deletions .github/workflows/label-issues.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Inspired by https://docs.github.com/en/actions/managing-issues-and-pull-requests/adding-labels-to-issues

name: Label issues
on:
issues:
types:
- reopened
- opened
jobs:
label_issues:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- uses: actions/github-script@v6
with:
script: |
github.rest.issues.addLabels({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
labels: ["triage"]
})
16 changes: 9 additions & 7 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
/Makefile
/docker-compose.yaml
*/Dockerfile
/examples/*.json
/secrets
/ssl
/machine/*.retry
/nginx/html/maintenance.html
/commit
/backup

.env
.vscode
/tags*
/.deploy-history
/.env

# Compiled output
dist
Expand All @@ -25,6 +24,9 @@ coverage

# Backups
*.bak
/backup
/backups
/.content-addressable-storage

# Image Diagrams
/diagrams/*.png
4 changes: 4 additions & 0 deletions .hadolint.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
ignored:
- DL3008

strict-labels: true
Empty file added .prettierrc
Empty file.
4 changes: 4 additions & 0 deletions .psqlrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
\x auto
\pset linestyle unicode
\pset null '∅'
\set QUIET 1
Empty file added .sqlfluff
Empty file.
30 changes: 26 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [v1.0.0] - 2022-02-28

### Added

-
Expand Down Expand Up @@ -121,6 +119,30 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
-
-

[Unreleased]: https://github.com/building-envelope-data/database/compare/v1.0.0...HEAD
## [v1.2.0] - 2026-06-30

### Added

- Add GraphQL query `verificationCode` [5dd0a94bcfbd3de69a3b29f0a07be406617fbf83](https://github.com/building-envelope-data/database/commit/5dd0a94bcfbd3de69a3b29f0a07be406617fbf83)
- Add pages for individual data entries [6e1a5a484b2054e0eca168fe58b4860caef8d872](https://github.com/building-envelope-data/database/commit/6e1a5a484b2054e0eca168fe58b4860caef8d872)
- Enable automatic persisted queries [f1f7a73f3001bc89d429b103b360ccd36ea32e0d](https://github.com/building-envelope-data/database/commit/f1f7a73f3001bc89d429b103b360ccd36ea32e0d)
- Login through the OpenId Connect endpoints of the metabase [#44](https://github.com/building-envelope-data/database/pull/44)

### Changed

- Upgrade packages to latest compatible versions in backend and frontend [#29](https://github.com/building-envelope-data/database/pull/29)
- Persist data protection keys in database [bbac9c7e84a21dcc67bc5a9446032b862af51b5b](https://github.com/building-envelope-data/database/commit/bbac9c7e84a21dcc67bc5a9446032b862af51b5b)
- Build Docker images with BuildKit [4ce5fa2c4dbe67de14f5e1c9be22896921349b50](https://github.com/building-envelope-data/database/commit/4ce5fa2c4dbe67de14f5e1c9be22896921349b50)
- Improve OpenId Connect usage and security [#46](https://github.com/building-envelope-data/database/pull/46)
- Do not manage JWT keys and GnuPG keys in files. JWT keys are created and rotated by the C# webserver daily. GnuPG keys are manually managed within the shell `make manage` and stored in the volume `gnupg`.
- Use `forge.mk` to build and push images to the server noting the image tag, which is just the commit hash. On the server use `deploy.mk deploy TARGET=<the-commit-hash>` to deploy backend and frontend based on those images.

### Fixed

- Remove explicit content-type as it results in requests from banana cake pop responding with 404 in commit [90ee575397544158a603cd7946bd6fec5e4c1407](https://github.com/building-envelope-data/database/commit/90ee575397544158a603cd7946bd6fec5e4c1407)

## [v1.0.0] - 2022-02-28

[v1.0.0]: https://github.com/building-envelope-data/database/compare/d45f78d150b58e016d63a827124b740765c4d350...v1.0.0
[Unreleased]: https://github.com/building-envelope-data/database/compare/v1.2.0...HEAD
[v1.2.0]: https://github.com/building-envelope-data/database/compare/v1.0.0...v1.2.0
[v1.0.0]: https://github.com/building-envelope-data/database/compare/352f44e492ca66d7835970cdf007b2897e686e30...v1.0.0
5 changes: 0 additions & 5 deletions Dockerfile-show-build-context

This file was deleted.

9 changes: 9 additions & 0 deletions Dockerfile.build-context
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# syntax=docker/dockerfile:1.21
# check=error=true
# Available versions are listed on https://hub.docker.com/r/docker/dockerfile

FROM busybox:1.37

RUN mkdir /tmp/build/
COPY . /tmp/build/
RUN find /tmp/build/
Loading
Loading