diff --git a/dc-dev.sh b/dc-dev.sh index 30968a947..9d59eee83 100755 --- a/dc-dev.sh +++ b/dc-dev.sh @@ -1,2 +1,3 @@ #!/bin/bash +cd "$(dirname $0)" docker-compose -f docker-compose.yml -f docker-compose.dev.yml $@ \ No newline at end of file diff --git a/dev-commands/clear-ds.sh b/dev-commands/clear-ds.sh new file mode 100755 index 000000000..537d8d578 --- /dev/null +++ b/dev-commands/clear-ds.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +set -e + +curl --header "Content-Type: application/json" -d '' http://localhost:9011/internal/datastore/writer/truncate_db diff --git a/dev-commands/export-ds.sh b/dev-commands/export-ds.sh new file mode 100755 index 000000000..d9ef1cd03 --- /dev/null +++ b/dev-commands/export-ds.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +set -e +cd "$(dirname $0)" + +TARGET=${1:-export.json} +URL="http://localhost:9010/internal/datastore/reader/get_everything" +curl --header "Content-Type: application/json" -d '{}' $URL 2> /dev/null | python3 strip-meta-fields.py > $TARGET diff --git a/dev-commands/set-ds.sh b/dev-commands/set-ds.sh new file mode 100755 index 000000000..edaf98e03 --- /dev/null +++ b/dev-commands/set-ds.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +set -e +cd "$(dirname $0)" + +# first argument is the example data +DATA=$(cat ${1:-../docs/example-data.json}) +./clear-ds.sh +docker-compose -f ../docker-compose.yml -f ../docker-compose.dev.yml exec datastore-writer \ + bash -c "source export-database-variables.sh; echo '$DATA' > /data.json; export DATASTORE_INITIAL_DATA_FILE=/data.json; python cli/create_initial_data.py" diff --git a/dev-commands/strip-meta-fields.py b/dev-commands/strip-meta-fields.py new file mode 100644 index 000000000..8f4157470 --- /dev/null +++ b/dev-commands/strip-meta-fields.py @@ -0,0 +1,12 @@ +import sys +import json + +data = sys.stdin.read() +json_data = json.loads(data) +for collection, models in json_data.items(): + for model in models: + for field in list(model.keys()): + if field.startswith("meta_"): + del model[field] + +sys.stdout.write(json.dumps(json_data, separators=(',', ':'))) \ No newline at end of file diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index a17af7b71..8f59fc5c1 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -5,12 +5,18 @@ services: volumes: - ./openslides-datastore-service/shared/shared:/app/shared - ./openslides-datastore-service/reader/reader:/app/reader + ports: + - "9010:9010" + environment: + - DATASTORE_ENABLE_DEV_ENVIRONMENT=1 datastore-writer: image: openslides-datastore-writer-dev volumes: - ./openslides-datastore-service/shared/shared:/app/shared - ./openslides-datastore-service/writer/writer:/app/writer - ./openslides-datastore-service/cli:/app/cli + ports: + - "9011:9011" environment: - DATASTORE_ENABLE_DEV_ENVIRONMENT=1 - COMMAND=create_initial_data diff --git a/docs/interfaces/datastore-service.txt b/docs/interfaces/datastore-service.txt index f3d6244d2..582243e6f 100644 --- a/docs/interfaces/datastore-service.txt +++ b/docs/interfaces/datastore-service.txt @@ -203,6 +203,16 @@ Interface GetManyRequest { */ get_all(collection: Collection, mapped_fields?: Field[], get_deleted_models?: DeletedModelsBehaviour): Map>; +/** + * Returns all models. + * Url: POST to /internal/datastore/reader/get_everything + * + * This is a dev route only! + * + * @returns The example data format: A mapping of a collection to a list of models. + */ +get_everything(get_deleted_models?: DeletedModelsBehaviour): Map; + /** * Returns all models of one collection that satisfy the filter condition. * Url: POST to /internal/datastore/reader/filter diff --git a/openslides-auth-service b/openslides-auth-service index e400ea34a..655cbd4bd 160000 --- a/openslides-auth-service +++ b/openslides-auth-service @@ -1 +1 @@ -Subproject commit e400ea34ad3750d22ea3f3a7130df3492fabf306 +Subproject commit 655cbd4bd8397ff4a0665c549283e6e71e5ea123 diff --git a/openslides-autoupdate-service b/openslides-autoupdate-service index 4af78b8ae..e22160c0b 160000 --- a/openslides-autoupdate-service +++ b/openslides-autoupdate-service @@ -1 +1 @@ -Subproject commit 4af78b8ae851c0aa33e48df573b821f29275eb87 +Subproject commit e22160c0b953fbbe01eb1e79c72bdf0701d5e288 diff --git a/openslides-backend b/openslides-backend index 4dc025e3c..32b809bc2 160000 --- a/openslides-backend +++ b/openslides-backend @@ -1 +1 @@ -Subproject commit 4dc025e3c5bfd4bed056b583769ed8a2390ea730 +Subproject commit 32b809bc2d6a046b267e01fb2dd641d9eff64093 diff --git a/openslides-client b/openslides-client index 418f7c3dc..cde0f50e5 160000 --- a/openslides-client +++ b/openslides-client @@ -1 +1 @@ -Subproject commit 418f7c3dc9fb1b9fe20de66f99070cb1389a07ad +Subproject commit cde0f50e56028b0724cc6139b0caaa4bd045bb89 diff --git a/openslides-datastore-service b/openslides-datastore-service index 95a5347de..8d3c7b05b 160000 --- a/openslides-datastore-service +++ b/openslides-datastore-service @@ -1 +1 @@ -Subproject commit 95a5347dea08b5dcda7f72718c614816ddca1020 +Subproject commit 8d3c7b05b56051b6291ef6e324f04ac65a3d6a0e diff --git a/openslides-media-service b/openslides-media-service index 27eea2f87..cdf1b72b2 160000 --- a/openslides-media-service +++ b/openslides-media-service @@ -1 +1 @@ -Subproject commit 27eea2f87e8f1f241bdd78e1493f5eb33e49e54e +Subproject commit cdf1b72b2252d1179d8e4a548f23b8df31e33c4c