From de2d5eb03060d47f421d615bd6c617249c350ec6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Norman=20J=C3=A4ckel?= Date: Fri, 9 Jul 2021 15:36:15 +0200 Subject: [PATCH] Moved production setup to manage service. --- README.md | 2 +- docker/docker-compose.yml.m4 | 270 ------- docker/docker-stack.yml.m4 | 308 -------- docker/initial-data.json | 1331 +++++++++++++++++----------------- docker/setup-prod.sh | 12 - 5 files changed, 666 insertions(+), 1257 deletions(-) delete mode 100644 docker/docker-compose.yml.m4 delete mode 100644 docker/docker-stack.yml.m4 delete mode 100755 docker/setup-prod.sh diff --git a/README.md b/README.md index c5e5daa5b..063147d4b 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ Setup initial-data: $ ./manage initial-data -Now you can open http://localhost:8000 and use OpenSlides. +Now you can open https://localhost:8000 and use OpenSlides. # TODO: Enable HTTPS support To stop OpenSlides run: diff --git a/docker/docker-compose.yml.m4 b/docker/docker-compose.yml.m4 deleted file mode 100644 index fcc78163c..000000000 --- a/docker/docker-compose.yml.m4 +++ /dev/null @@ -1,270 +0,0 @@ -dnl This is a YAML template file. Simply translate it with m4 to create -dnl a standard configuration. Customizations can and should be added in .env -dnl by setting the appropriate variables. -dnl -dnl Usage: -dnl m4 docker-compose.yml.m4 > docker-compose.yml -dnl ( set -a; source .env; m4 docker-compose.yml.m4 ) > docker-compose.yml -dnl -dnl ---------------------------------------- -divert(-1)dnl -define(`read_env', `esyscmd(`printf "%s" "$$1"')') -define(`ifenvelse', `ifelse(read_env(`$1'),, `$2', read_env(`$1'))') - -define(`BACKEND_IMAGE', -ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl -ifenvelse(`DOCKER_OPENSLIDES_BACKEND_NAME', openslides-backend):dnl -ifenvelse(`DOCKER_OPENSLIDES_BACKEND_TAG', latest-4)) -define(`PROXY_IMAGE', -ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl -ifenvelse(`DOCKER_OPENSLIDES_PROXY_NAME', openslides-proxy):dnl -ifenvelse(`DOCKER_OPENSLIDES_PROXY_TAG', latest-4)) -define(`CLIENT_IMAGE', -ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl -ifenvelse(`DOCKER_OPENSLIDES_CLIENT_NAME', openslides-client):dnl -ifenvelse(`DOCKER_OPENSLIDES_CLIENT_TAG', latest-4)) -define(`AUTH_IMAGE', -ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl -ifenvelse(`DOCKER_OPENSLIDES_AUTH_NAME', openslides-auth):dnl -ifenvelse(`DOCKER_OPENSLIDES_AUTH_TAG', latest-4)) -define(`AUTOUPDATE_IMAGE', -ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl -ifenvelse(`DOCKER_OPENSLIDES_AUTOUPDATE_NAME', openslides-autoupdate):dnl -ifenvelse(`DOCKER_OPENSLIDES_AUTOUPDATE_TAG', latest-4)) -define(`ICC_IMAGE', -ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl -ifenvelse(`DOCKER_OPENSLIDES_ICC_NAME', openslides-icc):dnl -ifenvelse(`DOCKER_OPENSLIDES_ICC_TAG', latest-4)) -define(`DATASTORE_READER_IMAGE', -ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl -ifenvelse(`DOCKER_OPENSLIDES_DATASTORE_READER_NAME', openslides-datastore-reader):dnl -ifenvelse(`DOCKER_OPENSLIDES_DATASTORE_READER_TAG', latest-4)) -define(`DATASTORE_WRITER_IMAGE', -ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl -ifenvelse(`DOCKER_OPENSLIDES_DATASTORE_WRITER_NAME', openslides-datastore-writer):dnl -ifenvelse(`DOCKER_OPENSLIDES_DATASTORE_WRITER_TAG', latest-4)) -define(`MEDIA_IMAGE', -ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl -ifenvelse(`DOCKER_OPENSLIDES_MEDIA_NAME', openslides-media):dnl -ifenvelse(`DOCKER_OPENSLIDES_MEDIA_TAG', latest-4)) -define(`MANAGE_IMAGE', -ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl -ifenvelse(`DOCKER_OPENSLIDES_MANAGE_NAME', openslides-manage):dnl -ifenvelse(`DOCKER_OPENSLIDES_MANAGE_TAG', latest-4)) -define(`PERMISSION_IMAGE', -ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl -ifenvelse(`DOCKER_OPENSLIDES_PERMISSION_NAME', openslides-permission):dnl -ifenvelse(`DOCKER_OPENSLIDES_PERMISSION_TAG', latest-4)) - -define(`PROJECT_DIR', ifdef(`PROJECT_DIR',PROJECT_DIR,.)) -define(`ADMIN_SECRET_AVAILABLE', `syscmd(`test -f 'PROJECT_DIR`/secrets/admin.env')sysval') -divert(0)dnl -dnl ---------------------------------------- -# This configuration was created from a template file. Before making changes, -# please make sure that you do not have a process in place that would override -# your changes in the future. The accompanying .env file might be the correct -# place for customizations instead. -version: '3.4' - -services: - proxy: - image: PROXY_IMAGE - depends_on: - - client - - backend - - autoupdate - - auth - - media - networks: - - uplink - - frontend - ports: - - "127.0.0.1:ifenvelse(`EXTERNAL_HTTP_PORT', 8000):8000" - - client: - image: CLIENT_IMAGE - networks: - - frontend - depends_on: - - backend - - autoupdate - - backend: - image: BACKEND_IMAGE - depends_on: - - datastore-reader - - datastore-writer - env_file: services.env - networks: - - frontend - - backend - secrets: - - auth_token_key - - auth_cookie_key - - datastore-reader: - image: DATASTORE_READER_IMAGE - depends_on: - - postgres - env_file: services.env - environment: - - NUM_WORKERS=8 - networks: - - backend - - datastore-reader - - postgres - - datastore-writer: - image: DATASTORE_WRITER_IMAGE - depends_on: - - postgres - - message-bus - env_file: services.env - networks: - - backend - - postgres - - message-bus - environment: - - COMMAND=create_initial_data - - DATASTORE_INITIAL_DATA_FILE=/data/initial-data.json - volumes: - - ./initial-data.json:/data/initial-data.json - - postgres: - image: postgres:11 - environment: - - POSTGRES_USER=openslides - - POSTGRES_PASSWORD=openslides - - POSTGRES_DB=openslides - networks: - - postgres - - autoupdate: - image: AUTOUPDATE_IMAGE - depends_on: - - datastore-reader - - message-bus - - auth - env_file: services.env - networks: - - frontend - - backend - - message-bus - secrets: - - auth_token_key - - auth_cookie_key - - icc: - image: ICC_IMAGE - depends_on: - - datastore-reader - - message-bus - - auth - enc_file: services.env - networks: - - frontend - - backend - - message-bus - secrets: - - auth_token_key - - auth_cookie_key - - auth: - image: AUTH_IMAGE - depends_on: - - datastore-reader - - message-bus - - cache - env_file: services.env - networks: - - datastore-reader - - frontend - - message-bus - - auth - secrets: - - auth_token_key - - auth_cookie_key - - cache: - image: redis:latest - networks: - - auth - - message-bus: - image: redis:latest - networks: - - message-bus - - media: - image: MEDIA_IMAGE - depends_on: - - backend - - postgres - env_file: services.env - networks: - - frontend - - backend - - postgres - - manage: - image: MANAGE_IMAGE - depends_on: - - auth - - datastore-writer - env_file: services.env - networks: - - backend - - auth - - # TODO: Remove depenencies to auth and datastore in "depends_on" and "networks" - # Should be doable when the manage service is fixed - manage-setup: - image: MANAGE_IMAGE - entrypoint: /root/entrypoint-setup - depends_on: - - manage - - auth - - datastore-writer - - datastore-reader - env_file: services.env - environment: - ENABLE_ELECTRONIC_VOTING: "ifenvelse(`ENABLE_ELECTRONIC_VOTING',)" - networks: - - backend - - auth - ifelse(ADMIN_SECRET_AVAILABLE, 0,secrets: - - admin) - - permission: - image: PERMISSION_IMAGE - depends_on: - - datastore-reader - env_file: services.env - networks: - - backend - - auth - -# Setup: host <-uplink-> proxy <-frontend-> services that are reachable from the client <-backend-> services that are internal-only -# There are special networks for some services only, e.g. postgres only for the postgresql, datastore reader and datastore writer -networks: - uplink: - frontend: - internal: true - backend: - internal: true - postgres: - internal: true - datastore-reader: - internal: true - message-bus: - internal: true - auth: - internal: true - -secrets: - auth_token_key: - file: ./secrets/auth_token_key - auth_cookie_key: - file: ./secrets/auth_cookie_key - ifelse(ADMIN_SECRET_AVAILABLE, 0,admin: - file: ./secrets/admin.env) diff --git a/docker/docker-stack.yml.m4 b/docker/docker-stack.yml.m4 deleted file mode 100644 index fa4284b89..000000000 --- a/docker/docker-stack.yml.m4 +++ /dev/null @@ -1,308 +0,0 @@ -dnl This is a YAML template file. Simply translate it with m4 to create -dnl a standard configuration. Customizations can and should be added in .env -dnl by setting the appropriate variables. -dnl -dnl Usage: -dnl m4 docker-stack.yml.m4 > docker-stack.yml -dnl ( set -a; source .env; m4 docker-stack.yml.m4 ) > docker-stack.yml -dnl -dnl ---------------------------------------- -divert(-1)dnl -define(`read_env', `esyscmd(`printf "%s" "$$1"')') -define(`ifenvelse', `ifelse(read_env(`$1'),, `$2', read_env(`$1'))') - -define(`BACKEND_IMAGE', -ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl -ifenvelse(`DOCKER_OPENSLIDES_BACKEND_NAME', openslides-backend):dnl -ifenvelse(`DOCKER_OPENSLIDES_BACKEND_TAG', latest-4)) -define(`PROXY_IMAGE', -ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl -ifenvelse(`DOCKER_OPENSLIDES_PROXY_NAME', openslides-proxy):dnl -ifenvelse(`DOCKER_OPENSLIDES_PROXY_TAG', latest-4)) -define(`CLIENT_IMAGE', -ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl -ifenvelse(`DOCKER_OPENSLIDES_CLIENT_NAME', openslides-client):dnl -ifenvelse(`DOCKER_OPENSLIDES_CLIENT_TAG', latest-4)) -define(`AUTH_IMAGE', -ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl -ifenvelse(`DOCKER_OPENSLIDES_AUTH_NAME', openslides-auth):dnl -ifenvelse(`DOCKER_OPENSLIDES_AUTH_TAG', latest-4)) -define(`AUTOUPDATE_IMAGE', -ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl -ifenvelse(`DOCKER_OPENSLIDES_AUTOUPDATE_NAME', openslides-autoupdate):dnl -ifenvelse(`DOCKER_OPENSLIDES_AUTOUPDATE_TAG', latest-4)) -define(`ICC_IMAGE', -ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl -ifenvelse(`DOCKER_OPENSLIDES_ICC_NAME', openslides-icc):dnl -ifenvelse(`DOCKER_OPENSLIDES_ICC_TAG', latest-4)) -define(`DATASTORE_READER_IMAGE', -ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl -ifenvelse(`DOCKER_OPENSLIDES_DATASTORE_READER_NAME', openslides-datastore-reader):dnl -ifenvelse(`DOCKER_OPENSLIDES_DATASTORE_READER_TAG', latest-4)) -define(`DATASTORE_WRITER_IMAGE', -ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl -ifenvelse(`DOCKER_OPENSLIDES_DATASTORE_WRITER_NAME', openslides-datastore-writer):dnl -ifenvelse(`DOCKER_OPENSLIDES_DATASTORE_WRITER_TAG', latest-4)) -define(`MEDIA_IMAGE', -ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl -ifenvelse(`DOCKER_OPENSLIDES_MEDIA_NAME', openslides-media):dnl -ifenvelse(`DOCKER_OPENSLIDES_MEDIA_TAG', latest-4)) -define(`MANAGE_IMAGE', -ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl -ifenvelse(`DOCKER_OPENSLIDES_MANAGE_NAME', openslides-manage):dnl -ifenvelse(`DOCKER_OPENSLIDES_MANAGE_TAG', latest-4)) -define(`PERMISSION_IMAGE', -ifenvelse(`DEFAULT_DOCKER_REGISTRY', openslides)/dnl -ifenvelse(`DOCKER_OPENSLIDES_PERMISSION_NAME', openslides-permission):dnl -ifenvelse(`DOCKER_OPENSLIDES_PERMISSION_TAG', latest-4)) - -define(`PROJECT_DIR', ifdef(`PROJECT_DIR',PROJECT_DIR,.)) -define(`ADMIN_SECRET_AVAILABLE', `syscmd(`test -f 'PROJECT_DIR`/secrets/admin.env')sysval') -divert(0)dnl -dnl ---------------------------------------- -# This configuration was created from a template file. Before making changes, -# please make sure that you do not have a process in place that would override -# your changes in the future. The accompanying .env file might be the correct -# place for customizations instead. -version: '3.4' - -services: - proxy: - image: PROXY_IMAGE - networks: - - uplink - - frontend - ports: - - "127.0.0.1:ifenvelse(`EXTERNAL_HTTP_PORT', 8000):8000" - deploy: - restart_policy: - condition: on-failure - delay: 5s - replicas: ifenvelse(`OPENSLIDES_PROXY_REPLICAS', 1) - - client: - image: CLIENT_IMAGE - networks: - - frontend - deploy: - restart_policy: - condition: on-failure - delay: 5s - replicas: ifenvelse(`OPENSLIDES_CLIENT_REPLICAS', 1) - - backend: - image: BACKEND_IMAGE - env_file: services.env - networks: - - frontend - - backend - deploy: - restart_policy: - condition: on-failure - delay: 5s - replicas: ifenvelse(`OPENSLIDES_BACKEND_REPLICAS', 1) - secrets: - - auth_token_key - - auth_cookie_key - - datastore-reader: - image: DATASTORE_READER_IMAGE - env_file: services.env - environment: - - NUM_WORKERS=8 - networks: - - backend - - datastore-reader - - postgres - deploy: - restart_policy: - condition: on-failure - delay: 5s - replicas: ifenvelse(`OPENSLIDES_DATASTORE_READER_REPLICAS', 1) - - datastore-writer: - image: DATASTORE_WRITER_IMAGE - env_file: services.env - networks: - - backend - - postgres - - message-bus - environment: - - COMMAND=create_initial_data - - DATASTORE_INITIAL_DATA_FILE=/data/initial-data.json - volumes: - - ./initial-data.json:/data/initial-data.json - deploy: - restart_policy: - condition: on-failure - delay: 5s - - postgres: - image: postgres:11 - environment: - - POSTGRES_USER=openslides - - POSTGRES_PASSWORD=openslides - - POSTGRES_DB=openslides - networks: - - postgres - deploy: - restart_policy: - condition: on-failure - delay: 5s - - autoupdate: - image: AUTOUPDATE_IMAGE - env_file: services.env - networks: - - frontend - - backend - - message-bus - deploy: - restart_policy: - condition: on-failure - delay: 5s - replicas: ifenvelse(`OPENSLIDES_AUTOUPDATE_REPLICAS', 1) - secrets: - - auth_token_key - - auth_cookie_key - - icc: - image: ICC_IMAGE - enc_file: services.env - networks: - - frontend - - backend - - message-bus - deploy: - restart_policy: - condition: on-failure - delay: 5s - replicas: ifenvelse(`OPENSLIDES_ICC_REPLICAS', 1) - secrets: - - auth_token_key - - auth_cookie_key - - - auth: - image: AUTH_IMAGE - env_file: services.env - networks: - - datastore-reader - - frontend - - message-bus - - auth - deploy: - restart_policy: - condition: on-failure - delay: 5s - replicas: ifenvelse(`OPENSLIDES_AUTH_REPLICAS', 1) - secrets: - - auth_token_key - - auth_cookie_key - - cache: - image: redis:latest - networks: - - auth - deploy: - restart_policy: - condition: on-failure - delay: 5s - - message-bus: - image: redis:latest - networks: - - message-bus - deploy: - restart_policy: - condition: on-failure - delay: 5s - - media: - image: MEDIA_IMAGE - env_file: services.env - networks: - - frontend - - backend - - postgres - deploy: - restart_policy: - condition: on-failure - delay: 5s - replicas: ifenvelse(`OPENSLIDES_MEDIA_REPLICAS', 1) - - manage: - image: MANAGE_IMAGE - env_file: services.env - networks: - - backend - - auth - deploy: - restart_policy: - condition: on-failure - delay: 5s - - # TODO: Remove depenency to auth in "networks" - # Should be doable when the manage service is fixed - manage-setup: - image: MANAGE_IMAGE - entrypoint: /root/entrypoint-setup - env_file: services.env - environment: - ENABLE_ELECTRONIC_VOTING: "ifenvelse(`ENABLE_ELECTRONIC_VOTING',)" - networks: - - backend - - auth - ifelse(ADMIN_SECRET_AVAILABLE, 0,secrets: - - admin) - deploy: - restart_policy: - condition: on-failure - delay: 5s - - permission: - image: PERMISSION_IMAGE - env_file: services.env - networks: - - backend - - auth - deploy: - restart_policy: - condition: on-failure - delay: 5s - replicas: ifenvelse(`OPENSLIDES_PERMISSION_REPLICAS', 1) - -networks: - uplink: - frontend: - driver_opts: - encrypted: "" - internal: true - backend: - driver_opts: - encrypted: "" - internal: true - postgres: - driver_opts: - encrypted: "" - internal: true - datastore-reader: - driver_opts: - encrypted: "" - internal: true - message-bus: - driver_opts: - encrypted: "" - internal: true - auth: - driver_opts: - encrypted: "" - internal: true - -secrets: - auth_token_key: - file: ./secrets/auth_token_key - auth_cookie_key: - file: ./secrets/auth_cookie_key - ifelse(ADMIN_SECRET_AVAILABLE, 0,admin: - file: ./secrets/admin.env) diff --git a/docker/initial-data.json b/docker/initial-data.json index 8e794c77a..3a06f8191 100644 --- a/docker/initial-data.json +++ b/docker/initial-data.json @@ -1,668 +1,667 @@ { -"_migration_index": -1, -"organization": [ - { - "id": 1, - "name": "OpenSlides", - "description": "The digital motion and assembly system", - "legal_notice": "OpenSlides is a free web based presentation and assembly system for visualizing and controlling agenda, motions and elections of an assembly.", - "privacy_policy": "", - "login_text": "Welcome to OpenSlides. Please login.", - "theme": "openslides-theme", - "reset_password_verbose_errors": false, - "enable_electronic_voting": false, - - "committee_ids": [1], - "resource_ids": [], - "organization_tag_ids": [] - }], -"user": [ - { - "id": 1, - "username": "admin", - "title": "", - "first_name": "", - "last_name": "Administrator", - "is_active": true, - "is_physical_person": true, - "password": "1422e767c5e08bb7196844025a0f98e1x61Ey612Kl2gpFL56FT9weDnpSo4AV8j8+qx2AuTHdRyY036xxzTTrw10Wq3+4qQyB+XURPWx1ONxp3Y3pB37A==", - "default_password": "admin", - "can_change_own_password": true, - "gender": null, - "email": "", - "default_number": "", - "default_structure_level": "", - "default_vote_weight": "1.000000", - "last_email_send": null, - "is_demo_user": false, - - "organization_management_level": "superadmin", - - "is_present_in_meeting_ids": [], - "committee_ids": [1], - "committee_$_management_level": ["1"], - "committee_$1_management_level": "can_manage", - - "comment_$": [], - "number_$": [], - "structure_level_$": [], - "about_me_$": [], - "vote_weight_$": [], - - "group_$_ids": ["1"], - "group_$1_ids": [2], - "speaker_$_ids": [], - "personal_note_$_ids": [], - "supported_motion_$_ids": [], - "submitted_motion_$_ids": [], - "poll_voted_$_ids": [], - "option_$_ids": [], - "vote_$_ids": [], - "vote_delegated_vote_$_ids": [], - "assignment_candidate_$_ids": [], - "projection_$_ids": [], - "vote_delegated_$_to_id": [], - "vote_delegations_$_from_ids": [], - - "meeting_ids": [1] - }], -"resource": [], -"organization_tag": [], -"committee": [ - { - "id": 1, - "name": "Default committee", - "description": "Add description here", - - "meeting_ids": [1], - "template_meeting_id": null, - "default_meeting_id": 1, - "user_ids": [1], - "forward_to_committee_ids": [], - "receive_forwardings_from_committee_ids": [], - "organization_tag_ids": [], - "organization_id": 1 - }], -"meeting": [ - { - "id": 1, - "welcome_title": "Welcome to OpenSlides", - "welcome_text": "[Space for your welcome text.]", - - "name": "OpenSlides - Die Veranstaltung (Teil II)", - "description": "Presentation and assembly system", - "location": "", - "start_time": 0, - "end_time": 0, - "imported_at": null, - - "jitsi_domain": "", - "jitsi_room_name": "", - "jitsi_room_password": "", - "enable_chat": false, - - "url_name": "openslides_1", - "template_for_committee_id": null, - "enable_anonymous": false, - "custom_translations": {}, - - "conference_show": false, - "conference_auto_connect": false, - "conference_los_restriction": false, - "conference_stream_url": "", - "conference_stream_poster_url": "", - "conference_open_microphone": true, - "conference_open_video": true, - "conference_auto_connect_next_speakers": 0, - "conference_enable_helpdesk": false, - "applause_enable": false, - "applause_type": "applause-type-bar", - "applause_show_level": false, - "applause_min_amount": 1, - "applause_max_amount": 0, - "applause_timeout": 5, - "applause_particle_image_url": "", - - "projector_countdown_default_time": 60, - "projector_countdown_warning_time": 0, - - "export_csv_encoding": "utf-8", - "export_csv_separator": ",", - "export_pdf_pagenumber_alignment": "center", - "export_pdf_fontsize": 10, - "export_pdf_pagesize": "A4", - - "agenda_show_subtitles": false, - "agenda_enable_numbering": true, - "agenda_number_prefix": "", - "agenda_numeral_system": "arabic", - "agenda_item_creation": "default_yes", - "agenda_new_items_default_visibility": "internal", - "agenda_show_internal_items_on_projector": false, - - "list_of_speakers_amount_last_on_projector": 1, - "list_of_speakers_amount_next_on_projector": -1, - "list_of_speakers_couple_countdown": true, - "list_of_speakers_show_amount_of_speakers_on_slide": true, - "list_of_speakers_present_users_only": false, - "list_of_speakers_show_first_contribution": false, - "list_of_speakers_enable_point_of_order_speakers": false, - "list_of_speakers_enable_pro_contra_speech": false, - "list_of_speakers_can_set_contribution_self": false, - "list_of_speakers_speaker_note_for_everyone": false, - "list_of_speakers_initially_closed": false, - - "motions_default_workflow_id": 1, - "motions_default_amendment_workflow_id": 1, - "motions_default_statute_amendment_workflow_id": 1, - "motions_preamble": "The assembly may decide:", - "motions_default_line_numbering": "none", - "motions_line_length": 90, - "motions_reason_required": false, - "motions_enable_text_on_projector": true, - "motions_enable_reason_on_projector": true, - "motions_enable_sidebox_on_projector": false, - "motions_enable_recommendation_on_projector": true, - "motions_show_referring_motions": true, - "motions_show_sequential_number": true, - "motions_recommendations_by": "", - "motions_statute_recommendations_by": "", - "motions_recommendation_text_mode": "original", - "motions_default_sorting": "number", - "motions_number_type": "per_category", - "motions_number_min_digits": 1, - "motions_number_with_blank": false, - "motions_statutes_enabled": true, - "motions_amendments_enabled": true, - "motions_amendments_in_main_list": true, - "motions_amendments_of_amendments": false, - "motions_amendments_prefix": "-", - "motions_amendments_text_mode": "freestyle", - "motions_amendments_multiple_paragraphs": true, - "motions_supporters_min_amount": 1, - "motions_export_title": "Motions", - "motions_export_preamble": "", - "motions_export_submitter_recommendation": false, - "motions_export_follow_recommendation": false, - - "motion_poll_ballot_paper_selection": "CUSTOM_NUMBER", - "motion_poll_ballot_paper_number": 8, - "motion_poll_default_type": "analog", - "motion_poll_default_100_percent_base": "YNA", - "motion_poll_default_group_ids": [5], - - "users_sort_by": "first_name", - "users_enable_presence_view": true, - "users_enable_vote_weight": true, - "users_allow_self_set_present": true, - "users_pdf_welcometitle": "Welcome to OpenSlides", - "users_pdf_welcometext": "[Place for your welcome and help text.]", - "users_pdf_url": "http://example.com:8000", - "users_pdf_wlan_ssid": "", - "users_pdf_wlan_password": "", - "users_pdf_wlan_encryption": "", - "users_email_sender": "noreply@yourdomain.com", - "users_email_replyto": "", - "users_email_subject": "Your login for {event_name}", - "users_email_body": "Dear {name},\n\nthis is your OpenSlides login for the event {event_name}:\n\n {url}\n username: {username}\n password: {password}\n\nThis email was generated automatically.", - - "assignment_poll_ballot_paper_selection": "CUSTOM_NUMBER", - "assignment_poll_ballot_paper_number": 8, - "assignments_export_title": "Elections", - "assignments_export_preamble": "", - "assignment_poll_add_candidates_to_list_of_speakers": true, - "assignment_poll_sort_poll_result_by_votes": true, - "assignment_poll_default_type": "nominal", - "assignment_poll_default_method": "votes", - "assignment_poll_default_100_percent_base": "valid", - "assignment_poll_default_group_ids": [5], - - "poll_ballot_paper_selection": "CUSTOM_NUMBER", - "poll_ballot_paper_number": 8, - "poll_sort_poll_result_by_votes": true, - "poll_default_type": "nominal", - "poll_default_method": "votes", - "poll_default_100_percent_base": "valid", - "poll_default_group_ids": [5], - "poll_couple_countdown": true, - - "projector_ids": [1], - "all_projection_ids": [], - "projector_message_ids": [], - "projector_countdown_ids": [1, 2], - "tag_ids": [], - "agenda_item_ids": [], - "list_of_speakers_ids": [], - "speaker_ids": [], - "topic_ids": [], - "group_ids": [1, 2, 3, 4, 5], - "mediafile_ids": [], - "motion_ids": [], - "motion_comment_section_ids": [], - "motion_category_ids": [], - "motion_block_ids": [], - "motion_workflow_ids": [1], - "motion_statute_paragraph_ids": [], - "motion_comment_ids": [], - "motion_submitter_ids": [], - "motion_change_recommendation_ids": [], - "motion_state_ids": [1, 2, 3, 4], - "poll_ids": [], - "option_ids": [], - "vote_ids": [], - "assignment_ids": [], - "assignment_candidate_ids": [], - "personal_note_ids": [], - "chat_group_ids": [], - - "logo_$_id": [], - "font_$_id": [], - - "committee_id": 1, - "default_meeting_for_committee_id": 1, - "organization_tag_ids": [], - "present_user_ids": [], - "user_ids": [1], - "reference_projector_id": 1, - "list_of_speakers_countdown_id": 1, - "poll_countdown_id": 2, - - "default_projector_$_id": [ - "agenda_all_items", - "topics", - "list_of_speakers", - "current_list_of_speakers", - "motion", - "amendment", - "motion_block", - "assignment", - "user", - "mediafile", - "projector_message", - "projector_countdowns", - "assignment_poll", - "motion_poll", - "poll" - ], - "default_projector_$agenda_all_items_id": 1, - "default_projector_$topics_id": 1, - "default_projector_$list_of_speakers_id": 1, - "default_projector_$current_list_of_speakers_id": 1, - "default_projector_$motion_id": 1, - "default_projector_$amendment_id": 1, - "default_projector_$motion_block_id": 1, - "default_projector_$assignment_id": 1, - "default_projector_$user_id": 1, - "default_projector_$mediafile_id": 1, - "default_projector_$projector_message_id": 1, - "default_projector_$projector_countdowns_id": 1, - "default_projector_$assignment_poll_id": 1, - "default_projector_$motion_poll_id": 1, - "default_projector_$poll_id": 1, - "projection_ids": [], - - "default_group_id": 1, - "admin_group_id": 2 - }], -"group": [ - { - "id": 1, - "name": "Default", - "permissions": [ - "agenda_item.can_see_internal", - "assignment.can_see", - "list_of_speakers.can_see", - "mediafile.can_see", - "meeting.can_see_frontpage", - "motion.can_see", - "projector.can_see", - "user.can_see" - ], - - "user_ids": [], - "default_group_for_meeting_id": 1, - "admin_group_for_meeting_id": null, - "mediafile_access_group_ids": [], - "mediafile_inherited_access_group_ids": [], - "read_comment_section_ids": [], - "write_comment_section_ids": [], - "read_chat_group_ids": [], - "write_chat_group_ids": [], - "poll_ids": [], - "used_as_motion_poll_default_id": null, - "used_as_assignment_poll_default_id": null, - "used_as_poll_default_id": null, - "meeting_id": 1 - }, - { - "id": 2, - "name": "Admin", - "permissions": [], - - "user_ids": [1], - "default_group_for_meeting_id": null, - "admin_group_for_meeting_id": 1, - "mediafile_access_group_ids": [], - "mediafile_inherited_access_group_ids": [], - "read_comment_section_ids": [], - "write_comment_section_ids": [], - "read_chat_group_ids": [], - "write_chat_group_ids": [], - "poll_ids": [], - "used_as_motion_poll_default_id": null, - "used_as_assignment_poll_default_id": null, - "used_as_poll_default_id": null, - "meeting_id": 1 - }, - { - "id": 3, - "name": "Staff", - "permissions": [ - "agenda_item.can_manage", - "assignment.can_manage", - "assignment.can_nominate_self", - "list_of_speakers.can_be_speaker", - "list_of_speakers.can_manage", - "mediafile.can_manage", - "meeting.can_see_frontpage", - "meeting.can_see_history", - "motion.can_manage", - "poll.can_manage", - "projector.can_manage", - "tag.can_manage", - "user.can_manage" - ], - - "user_ids": [], - "default_group_for_meeting_id": null, - "admin_group_for_meeting_id": null, - "mediafile_access_group_ids": [], - "mediafile_inherited_access_group_ids": [], - "read_comment_section_ids": [], - "write_comment_section_ids": [], - "read_chat_group_ids": [], - "write_chat_group_ids": [], - "poll_ids": [], - "used_as_motion_poll_default_id": null, - "used_as_assignment_poll_default_id": null, - "used_as_poll_default_id": null, - "meeting_id": 1 - }, - { - "id": 4, - "name": "Committees", - "permissions": [ - "agenda_item.can_see_internal", - "assignment.can_see", - "list_of_speakers.can_see", - "mediafile.can_see", - "meeting.can_see_frontpage", - "motion.can_create", - "motion.can_create_amendments", - "motion.can_support", - "projector.can_see", - "user.can_see" - ], - - "user_ids": [], - "default_group_for_meeting_id": null, - "admin_group_for_meeting_id": null, - "mediafile_access_group_ids": [], - "mediafile_inherited_access_group_ids": [], - "read_comment_section_ids": [], - "write_comment_section_ids": [], - "read_chat_group_ids": [], - "write_chat_group_ids": [], - "poll_ids": [], - "used_as_motion_poll_default_id": null, - "used_as_assignment_poll_default_id": null, - "used_as_poll_default_id": null, - "meeting_id": 1 - }, - { - "id": 5, - "name": "Delegates", - "permissions": [ - "agenda_item.can_see_internal", - "assignment.can_nominate_other", - "assignment.can_nominate_self", - "list_of_speakers.can_be_speaker", - "mediafile.can_see", - "meeting.can_see_autopilot", - "meeting.can_see_frontpage", - "motion.can_create", - "motion.can_create_amendments", - "motion.can_support", - "projector.can_see", - "user.can_see" - ], - - "user_ids": [], - "default_group_for_meeting_id": null, - "admin_group_for_meeting_id": null, - "mediafile_access_group_ids": [], - "mediafile_inherited_access_group_ids": [], - "read_comment_section_ids": [], - "write_comment_section_ids": [], - "read_chat_group_ids": [], - "write_chat_group_ids": [], - "poll_ids": [], - "used_as_motion_poll_default_id": 1, - "used_as_assignment_poll_default_id": 1, - "used_as_poll_default_id": 1, - "meeting_id": 1 - }], -"personal_note": [], -"tag": [], -"agenda_item": [], -"list_of_speakers": [], -"speaker": [], -"topic": [], -"motion": [], -"motion_submitter": [], -"motion_comment": [], -"motion_comment_section": [], -"motion_category": [], -"motion_block": [], -"motion_change_recommendation": [], -"motion_state": [ - { - "id": 1, - "name": "submitted", - "recommendation_label": null, - "css_class": "lightblue", - "restrictions": [], - "allow_support": true, - "allow_create_poll": true, - "allow_submitter_edit": true, - "set_number": true, - "show_state_extension_field": false, - "merge_amendment_into_final": "undefined", - "show_recommendation_extension_field": false, - - "next_state_ids": [2, 3, 4], - "previous_state_ids": [], - "motion_ids": [], - "motion_recommendation_ids": [], - "workflow_id": 1, - "first_state_of_workflow_id": 1, - "meeting_id": 1 - }, - { - "id": 2, - "name": "accepted", - "recommendation_label": "Acceptance", - "css_class": "green", - "restrictions": [], - "allow_support": false, - "allow_create_poll": false, - "allow_submitter_edit": false, - "set_number": true, - "show_state_extension_field": false, - "merge_amendment_into_final": "undefined", - "show_recommendation_extension_field": false, - - "next_state_ids": [], - "previous_state_ids": [1], - "motion_ids": [], - "motion_recommendation_ids": [], - "workflow_id": 1, - "first_state_of_workflow_id": null, - "meeting_id": 1 - }, - { - "id": 3, - "name": "rejected", - "recommendation_label": "Rejection", - "css_class": "red", - "restrictions": [], - "allow_support": false, - "allow_create_poll": false, - "allow_submitter_edit": false, - "set_number": true, - "show_state_extension_field": false, - "merge_amendment_into_final": "undefined", - "show_recommendation_extension_field": false, - - "next_state_ids": [], - "previous_state_ids": [1], - "motion_ids": [], - "motion_recommendation_ids": [], - "workflow_id": 1, - "first_state_of_workflow_id": null, - "meeting_id": 1 - }, - { - "id": 4, - "name": "not decided", - "recommendation_label": "No decision", - "css_class": "grey", - "restrictions": [], - "allow_support": false, - "allow_create_poll": false, - "allow_submitter_edit": false, - "set_number": true, - "show_state_extension_field": false, - "merge_amendment_into_final": "undefined", - "show_recommendation_extension_field": false, - - "next_state_ids": [], - "previous_state_ids": [1], - "motion_ids": [], - "motion_recommendation_ids": [], - "workflow_id": 1, - "first_state_of_workflow_id": null, - "meeting_id": 1 - } - ], -"motion_workflow": [ - { - "id": 1, - "name": "Simple Workflow", - - "state_ids": [1, 2, 3, 4], - "first_state_id": 1, - "default_workflow_meeting_id": 1, - "default_amendment_workflow_meeting_id": 1, - "default_statute_amendment_workflow_meeting_id": 1, - "meeting_id": 1 - }], -"motion_statute_paragraph": [], -"poll": [], -"option": [], -"vote": [], -"assignment": [], -"assignment_candidate": [], -"mediafile": [], -"projector": [ - { - "id": 1, - "name": "Default projector", - "scale": 0, - "scroll": 0, - "width": 1220, - "aspect_ratio_numerator": 4, - "aspect_ratio_denominator": 3, - "color": "#000000", - "background_color": "#ffffff", - "header_background_color": "#317796", - "header_font_color": "#f5f5f5", - "header_h1_color": "#317796", - "chyron_background_color": "#317796", - "chyron_font_color": "#ffffff", - "show_header_footer": true, - "show_title": true, - "show_logo": true, - "show_clock": true, - - "current_projection_ids": [], - "preview_projection_ids": [], - "history_projection_ids": [], - "used_as_reference_projector_meeting_id": 1, - - "used_as_default_$_in_meeting_id": [ - "agenda_all_items", - "topics", - "list_of_speakers", - "current_list_of_speakers", - "motion", - "amendment", - "motion_block", - "assignment", - "user", - "mediafile", - "projector_message", - "projector_countdowns", - "assignment_poll", - "motion_poll", - "poll" - ], - "used_as_default_$agenda_all_items_in_meeting_id": 1, - "used_as_default_$topics_in_meeting_id": 1, - "used_as_default_$list_of_speakers_in_meeting_id": 1, - "used_as_default_$current_list_of_speakers_in_meeting_id": 1, - "used_as_default_$motion_in_meeting_id": 1, - "used_as_default_$amendment_in_meeting_id": 1, - "used_as_default_$motion_block_in_meeting_id": 1, - "used_as_default_$assignment_in_meeting_id": 1, - "used_as_default_$user_in_meeting_id": 1, - "used_as_default_$mediafile_in_meeting_id": 1, - "used_as_default_$projector_message_in_meeting_id": 1, - "used_as_default_$projector_countdowns_in_meeting_id": 1, - "used_as_default_$assignment_poll_in_meeting_id": 1, - "used_as_default_$motion_poll_in_meeting_id": 1, - "used_as_default_$poll_in_meeting_id": 1, - - "meeting_id": 1 - }], -"projection": [], -"projector_message": [], -"projector_countdown": [ - { - "id": 1, - "title": "List of speaker countdown", - "description": "", - "default_time": 60, - "countdown_time": 60, - "running": false, - - "projection_ids": [], - "used_as_list_of_speaker_countdown_meeting_id": 1, - "used_as_poll_countdown_meeting_id": null, - "meeting_id": 1 - }, - { - "id": 2, - "title": "Voting countdown", - "description": "", - "default_time": 60, - "countdown_time": 60, - "running": false, - - "projection_ids": [], - "used_as_list_of_speaker_countdown_meeting_id": null, - "used_as_poll_countdown_meeting_id": 1, - "meeting_id": 1 - }], -"chat_group": [] + "_migration_index": -1, + "organization": [ + { + "id": 1, + "name": "[Your organization]", + "description": "", + "legal_notice": "OpenSlides is a free web based presentation and assembly system for visualizing and controlling agenda, motions and elections of an assembly. The event organizer is resposible for the content.", + "privacy_policy": "", + "login_text": "Welcome to OpenSlides. Please login.", + "theme": "openslides-default-light-theme", + "reset_password_verbose_errors": false, + "enable_electronic_voting": false, + "committee_ids": [ + 1 + ], + "resource_ids": [], + "organization_tag_ids": [] + } + ], + "user": [ + { + "id": 1, + "username": "superadmin", + "title": "", + "first_name": "", + "last_name": "Administrator", + "is_active": true, + "is_physical_person": true, + "password": "", + "default_password": "", + "can_change_own_password": true, + "gender": null, + "email": "", + "default_number": "", + "default_structure_level": "", + "default_vote_weight": "1.000000", + "last_email_send": null, + "is_demo_user": false, + "organization_management_level": "superadmin", + "is_present_in_meeting_ids": [], + "committee_ids": [], + "committee_$_management_level": [], + "comment_$": [], + "number_$": [], + "structure_level_$": [], + "about_me_$": [], + "vote_weight_$": [], + "group_$_ids": [], + "speaker_$_ids": [], + "personal_note_$_ids": [], + "supported_motion_$_ids": [], + "submitted_motion_$_ids": [], + "poll_voted_$_ids": [], + "option_$_ids": [], + "vote_$_ids": [], + "vote_delegated_vote_$_ids": [], + "assignment_candidate_$_ids": [], + "projection_$_ids": [], + "vote_delegated_$_to_id": [], + "vote_delegations_$_from_ids": [], + "meeting_ids": [] + } + ], + "resource": [], + "organization_tag": [], + "committee": [ + { + "id": 1, + "name": "Default committee", + "description": "", + "meeting_ids": [ + 1 + ], + "template_meeting_id": null, + "default_meeting_id": 1, + "user_ids": [], + "forward_to_committee_ids": [], + "receive_forwardings_from_committee_ids": [], + "organization_tag_ids": [], + "organization_id": 1 + } + ], + "meeting": [ + { + "id": 1, + "welcome_title": "Welcome to OpenSlides", + "welcome_text": "[Space for your welcome text]", + "name": "Default meeting", + "description": "", + "location": "", + "start_time": 0, + "end_time": 0, + "imported_at": null, + "jitsi_domain": "", + "jitsi_room_name": "", + "jitsi_room_password": "", + "enable_chat": false, + "url_name": "", + "template_for_committee_id": null, + "enable_anonymous": false, + "custom_translations": {}, + "conference_show": false, + "conference_auto_connect": false, + "conference_los_restriction": false, + "conference_stream_url": "", + "conference_stream_poster_url": "", + "conference_open_microphone": true, + "conference_open_video": true, + "conference_auto_connect_next_speakers": 0, + "conference_enable_helpdesk": false, + "applause_enable": false, + "applause_type": "applause-type-bar", + "applause_show_level": false, + "applause_min_amount": 1, + "applause_max_amount": 0, + "applause_timeout": 5, + "applause_particle_image_url": "", + "projector_countdown_default_time": 60, + "projector_countdown_warning_time": 0, + "export_csv_encoding": "utf-8", + "export_csv_separator": ",", + "export_pdf_pagenumber_alignment": "center", + "export_pdf_fontsize": 10, + "export_pdf_pagesize": "A4", + "agenda_show_subtitles": false, + "agenda_enable_numbering": true, + "agenda_number_prefix": "", + "agenda_numeral_system": "arabic", + "agenda_item_creation": "default_yes", + "agenda_new_items_default_visibility": "internal", + "agenda_show_internal_items_on_projector": false, + "list_of_speakers_amount_last_on_projector": 1, + "list_of_speakers_amount_next_on_projector": -1, + "list_of_speakers_couple_countdown": true, + "list_of_speakers_show_amount_of_speakers_on_slide": true, + "list_of_speakers_present_users_only": false, + "list_of_speakers_show_first_contribution": false, + "list_of_speakers_enable_point_of_order_speakers": false, + "list_of_speakers_enable_pro_contra_speech": false, + "list_of_speakers_can_set_contribution_self": false, + "list_of_speakers_speaker_note_for_everyone": false, + "list_of_speakers_initially_closed": false, + "motions_default_workflow_id": 1, + "motions_default_amendment_workflow_id": 1, + "motions_default_statute_amendment_workflow_id": 1, + "motions_preamble": "The assembly may decide:", + "motions_default_line_numbering": "none", + "motions_line_length": 90, + "motions_reason_required": false, + "motions_enable_text_on_projector": true, + "motions_enable_reason_on_projector": true, + "motions_enable_sidebox_on_projector": false, + "motions_enable_recommendation_on_projector": true, + "motions_show_referring_motions": true, + "motions_show_sequential_number": true, + "motions_recommendations_by": "", + "motions_statute_recommendations_by": "", + "motions_recommendation_text_mode": "original", + "motions_default_sorting": "number", + "motions_number_type": "per_category", + "motions_number_min_digits": 1, + "motions_number_with_blank": false, + "motions_statutes_enabled": true, + "motions_amendments_enabled": true, + "motions_amendments_in_main_list": true, + "motions_amendments_of_amendments": false, + "motions_amendments_prefix": "-", + "motions_amendments_text_mode": "freestyle", + "motions_amendments_multiple_paragraphs": true, + "motions_supporters_min_amount": 1, + "motions_export_title": "Motions", + "motions_export_preamble": "", + "motions_export_submitter_recommendation": false, + "motions_export_follow_recommendation": false, + "motion_poll_ballot_paper_selection": "CUSTOM_NUMBER", + "motion_poll_ballot_paper_number": 8, + "motion_poll_default_type": "analog", + "motion_poll_default_100_percent_base": "YNA", + "motion_poll_default_group_ids": [ + 3 + ], + "users_sort_by": "first_name", + "users_enable_presence_view": true, + "users_enable_vote_weight": true, + "users_allow_self_set_present": true, + "users_pdf_welcometitle": "Welcome to OpenSlides", + "users_pdf_welcometext": "[Place for your welcome and help text]", + "users_pdf_url": "https://example.com", + "users_pdf_wlan_ssid": "", + "users_pdf_wlan_password": "", + "users_pdf_wlan_encryption": "", + "users_email_sender": "noreply@yourdomain.com", + "users_email_replyto": "", + "users_email_subject": "Your login for {event_name}", + "users_email_body": "Dear {name},\n\nthis is your OpenSlides login for the event {event_name}:\n\n {url}\n username: {username}\n password: {password}\n\nThis email was generated automatically.", + "assignment_poll_ballot_paper_selection": "CUSTOM_NUMBER", + "assignment_poll_ballot_paper_number": 8, + "assignments_export_title": "Elections", + "assignments_export_preamble": "", + "assignment_poll_add_candidates_to_list_of_speakers": true, + "assignment_poll_sort_poll_result_by_votes": true, + "assignment_poll_default_type": "nominal", + "assignment_poll_default_method": "votes", + "assignment_poll_default_100_percent_base": "valid", + "assignment_poll_default_group_ids": [ + 3 + ], + "poll_ballot_paper_selection": "CUSTOM_NUMBER", + "poll_ballot_paper_number": 8, + "poll_sort_poll_result_by_votes": true, + "poll_default_type": "nominal", + "poll_default_method": "votes", + "poll_default_100_percent_base": "valid", + "poll_default_group_ids": [ + 3 + ], + "poll_couple_countdown": true, + "projector_ids": [ + 1 + ], + "all_projection_ids": [], + "projector_message_ids": [], + "projector_countdown_ids": [ + 1, + 2 + ], + "tag_ids": [], + "agenda_item_ids": [], + "list_of_speakers_ids": [], + "speaker_ids": [], + "topic_ids": [], + "group_ids": [ + 1, + 2, + 3, + 4 + ], + "mediafile_ids": [], + "motion_ids": [], + "motion_comment_section_ids": [], + "motion_category_ids": [], + "motion_block_ids": [], + "motion_workflow_ids": [ + 1 + ], + "motion_statute_paragraph_ids": [], + "motion_comment_ids": [], + "motion_submitter_ids": [], + "motion_change_recommendation_ids": [], + "motion_state_ids": [ + 1, + 2, + 3, + 4 + ], + "poll_ids": [], + "option_ids": [], + "vote_ids": [], + "assignment_ids": [], + "assignment_candidate_ids": [], + "personal_note_ids": [], + "chat_group_ids": [], + "logo_$_id": [], + "font_$_id": [], + "committee_id": 1, + "default_meeting_for_committee_id": 1, + "organization_tag_ids": [], + "present_user_ids": [], + "user_ids": [], + "reference_projector_id": 1, + "list_of_speakers_countdown_id": 1, + "poll_countdown_id": 2, + "default_projector_$_id": [ + "agenda_all_items", + "topics", + "list_of_speakers", + "current_list_of_speakers", + "motion", + "amendment", + "motion_block", + "assignment", + "user", + "mediafile", + "projector_message", + "projector_countdowns", + "assignment_poll", + "motion_poll", + "poll" + ], + "default_projector_$agenda_all_items_id": 1, + "default_projector_$topics_id": 1, + "default_projector_$list_of_speakers_id": 1, + "default_projector_$current_list_of_speakers_id": 1, + "default_projector_$motion_id": 1, + "default_projector_$amendment_id": 1, + "default_projector_$motion_block_id": 1, + "default_projector_$assignment_id": 1, + "default_projector_$user_id": 1, + "default_projector_$mediafile_id": 1, + "default_projector_$projector_message_id": 1, + "default_projector_$projector_countdowns_id": 1, + "default_projector_$assignment_poll_id": 1, + "default_projector_$motion_poll_id": 1, + "default_projector_$poll_id": 1, + "projection_ids": [], + "default_group_id": 1, + "admin_group_id": 2 + } + ], + "group": [ + { + "id": 1, + "name": "Default", + "permissions": [ + "agenda_item.can_see", + "agenda_item.can_see_internal", + "assignment.can_see", + "list_of_speakers.can_see", + "mediafile.can_see", + "meeting.can_see_frontpage", + "meeting.can_see_autopilot", + "motion.can_see", + "projector.can_see", + "user.can_see" + ], + "user_ids": [], + "default_group_for_meeting_id": 1, + "admin_group_for_meeting_id": null, + "mediafile_access_group_ids": [], + "mediafile_inherited_access_group_ids": [], + "read_comment_section_ids": [], + "write_comment_section_ids": [], + "read_chat_group_ids": [], + "write_chat_group_ids": [], + "poll_ids": [], + "used_as_motion_poll_default_id": null, + "used_as_assignment_poll_default_id": null, + "used_as_poll_default_id": null, + "meeting_id": 1 + }, + { + "id": 2, + "name": "Admin", + "permissions": [], + "user_ids": [], + "default_group_for_meeting_id": null, + "admin_group_for_meeting_id": 1, + "mediafile_access_group_ids": [], + "mediafile_inherited_access_group_ids": [], + "read_comment_section_ids": [], + "write_comment_section_ids": [], + "read_chat_group_ids": [], + "write_chat_group_ids": [], + "poll_ids": [], + "used_as_motion_poll_default_id": null, + "used_as_assignment_poll_default_id": null, + "used_as_poll_default_id": null, + "meeting_id": 1 + }, + { + "id": 3, + "name": "Delegates", + "permissions": [ + "agenda_item.can_see", + "agenda_item.can_see_internal", + "assignment.can_see", + "assignment.can_nominate_other", + "assignment.can_nominate_self", + "list_of_speakers.can_see", + "list_of_speakers.can_be_speaker", + "mediafile.can_see", + "meeting.can_see_frontpage", + "meeting.can_see_autopilot", + "motion.can_see", + "motion.can_create", + "motion.can_create_amendments", + "motion.can_support", + "projector.can_see", + "user.can_see" + ], + "user_ids": [], + "default_group_for_meeting_id": null, + "admin_group_for_meeting_id": null, + "mediafile_access_group_ids": [], + "mediafile_inherited_access_group_ids": [], + "read_comment_section_ids": [], + "write_comment_section_ids": [], + "read_chat_group_ids": [], + "write_chat_group_ids": [], + "poll_ids": [], + "used_as_motion_poll_default_id": 1, + "used_as_assignment_poll_default_id": 1, + "used_as_poll_default_id": 1, + "meeting_id": 1 + }, + { + "id": 4, + "name": "Staff", + "permissions": [ + "agenda_item.can_see", + "agenda_item.can_see_internal", + "agenda_item.can_manage", + "assignment.can_see", + "assignment.can_nominate_other", + "assignment.can_manage", + "assignment.can_nominate_self", + "list_of_speakers.can_see", + "list_of_speakers.can_be_speaker", + "list_of_speakers.can_manage", + "mediafile.can_see", + "mediafile.can_manage", + "meeting.can_see_frontpage", + "meeting.can_see_autopilot", + "motion.can_see", + "motion.can_manage", + "motion.can_manage_metadata", + "motion.can_manage_polls", + "motion.can_see_internal", + "motion.can_create", + "motion.can_create_amendments", + "poll.can_manage", + "projector.can_see", + "projector.can_manage", + "tag.can_manage", + "user.can_see", + "user.can_see_extra_data", + "user.can_manage" + ], + "user_ids": [], + "default_group_for_meeting_id": null, + "admin_group_for_meeting_id": null, + "mediafile_access_group_ids": [], + "mediafile_inherited_access_group_ids": [], + "read_comment_section_ids": [], + "write_comment_section_ids": [], + "read_chat_group_ids": [], + "write_chat_group_ids": [], + "poll_ids": [], + "used_as_motion_poll_default_id": null, + "used_as_assignment_poll_default_id": null, + "used_as_poll_default_id": null, + "meeting_id": 1 + } + ], + "personal_note": [], + "tag": [], + "agenda_item": [], + "list_of_speakers": [], + "speaker": [], + "topic": [], + "motion": [], + "motion_submitter": [], + "motion_comment": [], + "motion_comment_section": [], + "motion_category": [], + "motion_block": [], + "motion_change_recommendation": [], + "motion_state": [ + { + "id": 1, + "name": "submitted", + "recommendation_label": null, + "css_class": "lightblue", + "restrictions": [], + "allow_support": true, + "allow_create_poll": true, + "allow_submitter_edit": true, + "set_number": true, + "show_state_extension_field": false, + "merge_amendment_into_final": "undefined", + "show_recommendation_extension_field": false, + "next_state_ids": [ + 2, + 3, + 4 + ], + "previous_state_ids": [], + "motion_ids": [], + "motion_recommendation_ids": [], + "workflow_id": 1, + "first_state_of_workflow_id": 1, + "meeting_id": 1 + }, + { + "id": 2, + "name": "accepted", + "recommendation_label": "Acceptance", + "css_class": "green", + "restrictions": [], + "allow_support": false, + "allow_create_poll": false, + "allow_submitter_edit": false, + "set_number": true, + "show_state_extension_field": false, + "merge_amendment_into_final": "undefined", + "show_recommendation_extension_field": false, + "next_state_ids": [], + "previous_state_ids": [ + 1 + ], + "motion_ids": [], + "motion_recommendation_ids": [], + "workflow_id": 1, + "first_state_of_workflow_id": null, + "meeting_id": 1 + }, + { + "id": 3, + "name": "rejected", + "recommendation_label": "Rejection", + "css_class": "red", + "restrictions": [], + "allow_support": false, + "allow_create_poll": false, + "allow_submitter_edit": false, + "set_number": true, + "show_state_extension_field": false, + "merge_amendment_into_final": "undefined", + "show_recommendation_extension_field": false, + "next_state_ids": [], + "previous_state_ids": [ + 1 + ], + "motion_ids": [], + "motion_recommendation_ids": [], + "workflow_id": 1, + "first_state_of_workflow_id": null, + "meeting_id": 1 + }, + { + "id": 4, + "name": "not decided", + "recommendation_label": "No decision", + "css_class": "grey", + "restrictions": [], + "allow_support": false, + "allow_create_poll": false, + "allow_submitter_edit": false, + "set_number": true, + "show_state_extension_field": false, + "merge_amendment_into_final": "undefined", + "show_recommendation_extension_field": false, + "next_state_ids": [], + "previous_state_ids": [ + 1 + ], + "motion_ids": [], + "motion_recommendation_ids": [], + "workflow_id": 1, + "first_state_of_workflow_id": null, + "meeting_id": 1 + } + ], + "motion_workflow": [ + { + "id": 1, + "name": "Simple Workflow", + "state_ids": [ + 1, + 2, + 3, + 4 + ], + "first_state_id": 1, + "default_workflow_meeting_id": 1, + "default_amendment_workflow_meeting_id": 1, + "default_statute_amendment_workflow_meeting_id": 1, + "meeting_id": 1 + } + ], + "motion_statute_paragraph": [], + "poll": [], + "option": [], + "vote": [], + "assignment": [], + "assignment_candidate": [], + "mediafile": [], + "projector": [ + { + "id": 1, + "name": "Default projector", + "scale": 0, + "scroll": 0, + "width": 1220, + "aspect_ratio_numerator": 4, + "aspect_ratio_denominator": 3, + "color": "#000000", + "background_color": "#ffffff", + "header_background_color": "#317796", + "header_font_color": "#f5f5f5", + "header_h1_color": "#317796", + "chyron_background_color": "#317796", + "chyron_font_color": "#ffffff", + "show_header_footer": true, + "show_title": true, + "show_logo": true, + "show_clock": true, + "current_projection_ids": [], + "preview_projection_ids": [], + "history_projection_ids": [], + "used_as_reference_projector_meeting_id": 1, + "used_as_default_$_in_meeting_id": [ + "agenda_all_items", + "topics", + "list_of_speakers", + "current_list_of_speakers", + "motion", + "amendment", + "motion_block", + "assignment", + "user", + "mediafile", + "projector_message", + "projector_countdowns", + "assignment_poll", + "motion_poll", + "poll" + ], + "used_as_default_$agenda_all_items_in_meeting_id": 1, + "used_as_default_$topics_in_meeting_id": 1, + "used_as_default_$list_of_speakers_in_meeting_id": 1, + "used_as_default_$current_list_of_speakers_in_meeting_id": 1, + "used_as_default_$motion_in_meeting_id": 1, + "used_as_default_$amendment_in_meeting_id": 1, + "used_as_default_$motion_block_in_meeting_id": 1, + "used_as_default_$assignment_in_meeting_id": 1, + "used_as_default_$user_in_meeting_id": 1, + "used_as_default_$mediafile_in_meeting_id": 1, + "used_as_default_$projector_message_in_meeting_id": 1, + "used_as_default_$projector_countdowns_in_meeting_id": 1, + "used_as_default_$assignment_poll_in_meeting_id": 1, + "used_as_default_$motion_poll_in_meeting_id": 1, + "used_as_default_$poll_in_meeting_id": 1, + "meeting_id": 1 + } + ], + "projection": [], + "projector_message": [], + "projector_countdown": [ + { + "id": 1, + "title": "List of speaker countdown", + "description": "", + "default_time": 60, + "countdown_time": 60, + "running": false, + "projection_ids": [], + "used_as_list_of_speaker_countdown_meeting_id": 1, + "used_as_poll_countdown_meeting_id": null, + "meeting_id": 1 + }, + { + "id": 2, + "title": "Voting countdown", + "description": "", + "default_time": 60, + "countdown_time": 60, + "running": false, + "projection_ids": [], + "used_as_list_of_speaker_countdown_meeting_id": null, + "used_as_poll_countdown_meeting_id": 1, + "meeting_id": 1 + } + ], + "chat_group": [] } diff --git a/docker/setup-prod.sh b/docker/setup-prod.sh deleted file mode 100755 index 9e43c1c58..000000000 --- a/docker/setup-prod.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash - -# Create keys for auth, if they do not exist -if [ ! -f secrets/auth_token_key ]; then - tr -dc 'a-zA-Z0-9' < /dev/urandom | head -c 64 > secrets/auth_token_key -fi -if [ ! -f secrets/auth_cookie_key ]; then - tr -dc 'a-zA-Z0-9' < /dev/urandom | head -c 64 > secrets/auth_cookie_key -fi - -( set -a; source .env; m4 docker-compose.yml.m4 ) > docker-compose.yml -( set -a; source .env; m4 docker-stack.yml.m4 ) > docker-stack.yml