├── .editorconfig ├── .gitattributes ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── custom.md │ └── feature_request.md ├── dependabot.yml └── workflows │ ├── codeql-analysis.yml │ ├── super-linter.yml.disabled │ └── test-install.yml ├── .gitignore ├── .vscode ├── launch.json ├── settings.json └── tasks.json ├── CODE_OF_CONDUCT.md ├── CODING_GUIDELINES.md ├── CODING_GUIDELINES_FRONTEND.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── SECURITY.md ├── ansible.cfg ├── azure ├── app.zip ├── createUiDefinition.json ├── deploy-2004.json ├── fwo.bicep ├── install_script.b64 └── mainTemplate.json ├── design ├── UI │ ├── settings-management.md │ ├── settings.md │ ├── ui-filter-grammar.g4 │ └── webassembly.md ├── directory_structure.md ├── readme.md ├── requirements_collection.md ├── storing-config-data.md └── todo.md ├── documentation ├── README.md ├── SBOM │ ├── fwo-sbom.json │ └── readme.md ├── auth │ ├── JWT-format.md │ ├── README.md │ ├── fworch-auth-process.png │ ├── ldap_structure.drawio │ ├── ldap_structure.md │ ├── ldap_structure.png │ └── rbac.md ├── certificates.md ├── database │ └── readme.md ├── developer-docs │ ├── README.MD │ ├── UI │ │ ├── README.MD │ │ ├── blazor │ │ │ ├── blazor-with-js.md │ │ │ └── howto-blazor.md │ │ ├── csharp │ │ │ └── data-filtering.md │ │ └── ui-filter-parser │ │ │ ├── Grammar Filter.pdf │ │ │ └── README.MD │ ├── api │ │ ├── README.md │ │ ├── adding-rest-api-endpoints.md │ │ ├── api_handling_documentation.md │ │ ├── docker-default-ip-range-change.md │ │ ├── fwo_api_doc_generation_interface.md │ │ ├── fwo_api_documentation.md │ │ ├── graphql_schema_handling.md │ │ ├── hasura-documentation.md │ │ ├── hasura-howto.md │ │ ├── hasura-install.md │ │ └── todo.txt │ ├── count-lines-of-code.md │ ├── csharp │ │ ├── README.md │ │ ├── blazor │ │ │ └── blazorTable │ │ │ │ └── README.md │ │ └── csharp-namespaces.png │ ├── database │ │ ├── pgpsql-exception-handling.md │ │ ├── readme.md │ │ └── structure-of-db_exists.md │ ├── git-howto.md │ ├── importer │ │ ├── FWO-import-api.md │ │ ├── firewall-APIs │ │ │ ├── checkpoint │ │ │ │ ├── api-calls-used.md │ │ │ │ ├── checkpoint-r8x-import-process.png │ │ │ │ ├── hits.md │ │ │ │ ├── importer-CP-R8x-Cert-Export.md │ │ │ │ ├── install-r8x-test-system.md │ │ │ │ ├── r8x-parse-only-testing.md │ │ │ │ └── readme.md │ │ │ ├── cisco-aci │ │ │ │ └── cisco-aci-api.md │ │ │ ├── cisco-firepower │ │ │ │ └── readme.md │ │ │ ├── cisco-sda │ │ │ │ └── cisco-sda-api.md │ │ │ ├── fortinet │ │ │ │ └── fortiManager-api-howto.md │ │ │ ├── illumio │ │ │ │ ├── 0-API.md │ │ │ │ ├── 1-install-pce.md │ │ │ │ └── 2-pair-workloads.md │ │ │ ├── openstack │ │ │ │ └── openstack.md │ │ │ └── paloAlto │ │ │ │ └── paloAltoApi.md │ │ ├── legacy-importer-csv-interface.md │ │ └── readme.md │ ├── installer │ │ ├── accelerate_install.md │ │ ├── ansible-redhat.md │ │ ├── ansible-vault-howto.md │ │ ├── ansible_conditional_vars.md │ │ └── upgrading.md │ ├── language-api-git.txt │ ├── middleware │ │ └── README.MD │ ├── project-directory-structure.md │ ├── test │ │ └── README.md │ └── visual-studio │ │ ├── readme.md │ │ ├── remote-development-vs-code.md │ │ ├── vscode-debug-python-importer.md │ │ └── vscode-debugging.md ├── fworch-architecture.drawio ├── get-started.MD ├── importer │ └── readme.md ├── installer │ ├── README.MD │ ├── basic-installation.md │ ├── changes-necessary-for-distributed-setup.md │ ├── install-advanced.md │ ├── install-for-testing.md │ ├── postgresql_versions.md │ └── server-upgrade.md ├── operations.md ├── revision-history-develop.md ├── revision-history-main.md └── system-requirements.md ├── etc ├── dummy_etc_folder_for_dotnet_debugging.txt └── fworch.json ├── fwo.code-workspace ├── inventory ├── group_vars │ ├── all.yml │ ├── apiserver.yml │ ├── cloud.yml │ ├── databaseserver.yml │ ├── frontends.yml │ ├── importers.yml │ ├── middlewareserver.yml │ ├── sampleserver.yml │ └── testservers.yml └── hosts.yml ├── roles ├── .editorconfig ├── .gitignore ├── FWO.sln ├── api │ ├── files │ │ ├── replace_metadata.json │ │ └── scripts │ │ │ ├── common_scripts.py │ │ │ ├── fwo-execute-graphql-query-with-vars.py │ │ │ ├── fwo-execute-graphql.py │ │ │ ├── fwo-export-config.py │ │ │ └── fwo-migrate-itsecorg-devices.py │ ├── handlers │ │ └── main.yml │ ├── tasks │ │ ├── api-apache-install-and-setup.yml │ │ ├── api-create-docu.yml │ │ ├── hasura-install.yml │ │ ├── main.yml │ │ ├── run-upgrades.yml │ │ └── upgrade │ │ │ └── 5.7.1.yml │ └── templates │ │ ├── fworch-hasura-docker-api.service.j2 │ │ └── httpd.conf.j2 ├── common │ ├── files │ │ ├── maintenance-info.html │ │ └── men-at-work.jpg │ ├── tasks │ │ ├── conf_file_creator.yml │ │ ├── install_syslog.yml │ │ ├── main.yml │ │ ├── maintenance-site.yml │ │ ├── redhat_preps.yml │ │ ├── run-upgrades.yml │ │ ├── uninstall.yml │ │ └── upgrade │ │ │ ├── 5.1.17.yml │ │ │ └── 7.2.3.yml │ └── templates │ │ ├── httpd-maintenance.conf │ │ └── iso.conf.j2 ├── database │ ├── files │ │ ├── csv │ │ │ ├── color.csv │ │ │ ├── error.csv │ │ │ ├── ip-protocol-list.csv │ │ │ └── ns-predefined-services.csv │ │ ├── get_pg_version.sh │ │ ├── remove_all_containers.sh │ │ ├── sql │ │ │ ├── creation │ │ │ │ ├── fworch-create-constraints.sql │ │ │ │ ├── fworch-create-foreign-keys.sql │ │ │ │ ├── fworch-create-indices.sql │ │ │ │ ├── fworch-create-tables.sql │ │ │ │ ├── fworch-create-triggers.sql │ │ │ │ ├── fworch-fill-stm.sql │ │ │ │ └── fworch-views-materialized.sql │ │ │ ├── idempotent │ │ │ │ ├── fworch-api-funcs.sql │ │ │ │ ├── fworch-basic-procs.sql │ │ │ │ ├── fworch-encryption.sql │ │ │ │ ├── fworch-grants.sql │ │ │ │ ├── fworch-import-main.sql │ │ │ │ ├── fworch-import.sql │ │ │ │ ├── fworch-networking-import.sql │ │ │ │ ├── fworch-obj-import.sql │ │ │ │ ├── fworch-obj-refs.sql │ │ │ │ ├── fworch-path-analysis.sql │ │ │ │ ├── fworch-qa.sql │ │ │ │ ├── fworch-rule-import.sql │ │ │ │ ├── fworch-rule-recert.sql │ │ │ │ ├── fworch-rule-refs.sql │ │ │ │ ├── fworch-rule-resolved.sql │ │ │ │ ├── fworch-svc-import.sql │ │ │ │ ├── fworch-svc-refs.sql │ │ │ │ ├── fworch-texts.sql │ │ │ │ ├── fworch-usr-import.sql │ │ │ │ ├── fworch-usr-refs.sql │ │ │ │ ├── fworch-views-changes.sql │ │ │ │ ├── fworch-zone-import.sql │ │ │ │ └── unused_fworch-views-tenant.sql │ │ │ ├── maintenance │ │ │ │ ├── fworch-change-to-delete-cascade.sql │ │ │ │ └── fworch-cleanup.sql │ │ │ └── test │ │ │ │ ├── hasura-test.sql │ │ │ │ ├── unit-test-cleanup.sql │ │ │ │ └── unit-tests.sql │ │ └── upgrade │ │ │ ├── 5.0.0.sql │ │ │ ├── 5.0.1.sql │ │ │ ├── 5.0.2.sql │ │ │ ├── 5.0.3.sql │ │ │ ├── 5.0.4.sql │ │ │ ├── 5.0.5.sql │ │ │ ├── 5.0.6.sql │ │ │ ├── 5.0.7.sql │ │ │ ├── 5.0.8.sql │ │ │ ├── 5.0.9.sql │ │ │ ├── 5.1.01.sql │ │ │ ├── 5.1.02.sql │ │ │ ├── 5.1.03.sql │ │ │ ├── 5.1.04.sql │ │ │ ├── 5.1.05.sql │ │ │ ├── 5.1.06.sql │ │ │ ├── 5.1.07.sql │ │ │ ├── 5.1.08.sql │ │ │ ├── 5.1.09.sql │ │ │ ├── 5.1.10.sql │ │ │ ├── 5.1.11.sql │ │ │ ├── 5.1.12.sql │ │ │ ├── 5.1.13.sql │ │ │ ├── 5.1.15.sql │ │ │ ├── 5.1.16.sql │ │ │ ├── 5.1.17.sql │ │ │ ├── 5.2.1.sql │ │ │ ├── 5.2.3.sql │ │ │ ├── 5.2.4.sql │ │ │ ├── 5.2.5.sql │ │ │ ├── 5.2.6.sql │ │ │ ├── 5.2.7.sql │ │ │ ├── 5.2.8.sql │ │ │ ├── 5.3.3.sql │ │ │ ├── 5.4.1.sql │ │ │ ├── 5.4.2.sql │ │ │ ├── 5.5.1.sql │ │ │ ├── 5.5.2.sql │ │ │ ├── 5.5.3.sql │ │ │ ├── 5.5.4.sql │ │ │ ├── 5.5.6.sql │ │ │ ├── 5.5.7.sql │ │ │ ├── 5.6.1.sql │ │ │ ├── 5.6.2.sql │ │ │ ├── 5.6.3.sql │ │ │ ├── 5.6.5.sql │ │ │ ├── 5.6.6.sql │ │ │ ├── 5.6.7.sql │ │ │ ├── 5.6.8.sql │ │ │ ├── 5.6.9.sql │ │ │ ├── 5.7.1.sql │ │ │ ├── 5.7.2.sql │ │ │ ├── 5.8.sql │ │ │ ├── 6.1.0.sql │ │ │ ├── 6.1.1.sql │ │ │ ├── 6.1.2.sql │ │ │ ├── 6.1.3.sql │ │ │ ├── 6.1.4.sql │ │ │ ├── 6.2.2.sql │ │ │ ├── 6.3.3.sql │ │ │ ├── 6.5.0.sql │ │ │ ├── 6.5.1.sql │ │ │ ├── 7.0.2.sql │ │ │ ├── 7.1.2.sql │ │ │ ├── 7.2.1.sql │ │ │ ├── 7.2.2.sql │ │ │ ├── 7.2.4.sql │ │ │ ├── 7.2.5.sql │ │ │ ├── 7.3.1.sql │ │ │ ├── 7.3.2.sql │ │ │ ├── 7.3.3.sql │ │ │ ├── 7.3.4.sql │ │ │ ├── 7.3.5.sql │ │ │ ├── 7.3.6.sql │ │ │ ├── 7.3.sql │ │ │ ├── 8.0.1.sql │ │ │ ├── 8.0.2.sql │ │ │ ├── 8.0.3.sql │ │ │ ├── 8.1.1.sql │ │ │ ├── 8.1.2.sql │ │ │ ├── 8.2.2.sql │ │ │ ├── 8.2.3.sql │ │ │ ├── 8.2.4.sql │ │ │ ├── 8.3.1.sql │ │ │ ├── 8.3.2.sql │ │ │ ├── 8.4.1.sql │ │ │ ├── 8.4.2.sql │ │ │ ├── 8.4.3.sql │ │ │ ├── 8.5.2.sql │ │ │ ├── 8.5.3.sql │ │ │ ├── 8.5.4.sql │ │ │ ├── 8.6.1.sql │ │ │ ├── 8.6.3.sql │ │ │ ├── 8.7.1.sql │ │ │ ├── 8.7.2.sql │ │ │ └── 8.8.2.sql │ └── tasks │ │ ├── create-users.yml │ │ ├── install-database.yml │ │ ├── main.yml │ │ ├── redhat_preps.yml │ │ ├── run-unit-tests.yml │ │ ├── unused-add-tablespace.yml │ │ └── upgrade-database.yml ├── docker │ ├── files │ │ └── docker-apt-key.asc │ ├── handlers │ │ └── main.yml │ ├── tasks │ │ ├── main.yml │ │ ├── run-upgrades.yml │ │ ├── set-docker-daemon-proxy.yml │ │ └── upgrade │ │ │ └── 5.7.1.yml │ └── templates │ │ ├── unused_docker-config.json.j2 │ │ └── unused_docker_config.j2 ├── finalize │ └── tasks │ │ ├── main.yml │ │ ├── run-upgrades.yml │ │ └── upgrade │ │ ├── 5.6.2.yml │ │ └── 5.6.5.yml ├── global.json ├── importer │ ├── files │ │ ├── import.conf │ │ └── importer │ │ │ ├── CACTUS │ │ │ ├── FWORCH.pm │ │ │ ├── FWORCH │ │ │ │ ├── import.pm │ │ │ │ └── import │ │ │ │ │ ├── checkpoint.pm │ │ │ │ │ ├── checkpointR8x.pm │ │ │ │ │ ├── cisco.pm │ │ │ │ │ ├── fortinet.pm │ │ │ │ │ ├── juniper.pm │ │ │ │ │ ├── netscreen.pm │ │ │ │ │ └── phion.pm │ │ │ └── read_config.pm │ │ │ ├── __init__.py │ │ │ ├── azure2022ff │ │ │ ├── __init__.py │ │ │ ├── azure_base.py │ │ │ ├── azure_getter.py │ │ │ ├── azure_network.py │ │ │ ├── azure_rule.py │ │ │ ├── azure_service.py │ │ │ ├── discovery_logging.conf │ │ │ └── fwcommon.py │ │ │ ├── checkpointR8x │ │ │ ├── __init__.py │ │ │ ├── cp_const.py │ │ │ ├── cp_getter.py │ │ │ ├── cp_network.py │ │ │ ├── cp_rule.py │ │ │ ├── cp_service.py │ │ │ ├── cp_user.py │ │ │ ├── discovery_logging.conf │ │ │ └── fwcommon.py │ │ │ ├── ciscofirepowerdomain7ff │ │ │ ├── __init__.py │ │ │ ├── cifp_getter.py │ │ │ ├── cifp_network.py │ │ │ ├── cifp_rule.py │ │ │ ├── cifp_service.py │ │ │ ├── discovery_logging.conf │ │ │ └── fwcommon.py │ │ │ ├── common.py │ │ │ ├── dummyroutermanagement1 │ │ │ ├── __init__.py │ │ │ └── fwcommon.py │ │ │ ├── fortiadom5ff │ │ │ ├── __init__.py │ │ │ ├── autodiscover.sh │ │ │ ├── discovery_logging.conf │ │ │ ├── fmgr_getter.py │ │ │ ├── fmgr_gw_networking.py │ │ │ ├── fmgr_network.py │ │ │ ├── fmgr_rule.py │ │ │ ├── fmgr_service.py │ │ │ ├── fmgr_user.py │ │ │ ├── fmgr_zone.py │ │ │ └── fwcommon.py │ │ │ ├── fortiosmanagementREST │ │ │ ├── __init__.py │ │ │ ├── fOS_common.py │ │ │ ├── fOS_getter.py │ │ │ ├── fOS_network.py │ │ │ ├── fOS_rule.py │ │ │ ├── fOS_service.py │ │ │ ├── fOS_user.py │ │ │ ├── fOS_zone.py │ │ │ ├── fwcommon.py │ │ │ └── unused_fOS_gw_networking.py │ │ │ ├── fwo_alert.py │ │ │ ├── fwo_api.py │ │ │ ├── fwo_base.py │ │ │ ├── fwo_config.py │ │ │ ├── fwo_const.py │ │ │ ├── fwo_data_networking.py │ │ │ ├── fwo_encrypt.py │ │ │ ├── fwo_exception.py │ │ │ ├── fwo_file_import.py │ │ │ ├── fwo_globals.py │ │ │ ├── fwo_log.py │ │ │ ├── fwo_mail_unused │ │ │ ├── fworch-importer-main.pl │ │ │ ├── fworch-importer-reset-all.pl │ │ │ ├── fworch-importer-single.pl │ │ │ ├── fworch-importer-srv-helper │ │ │ ├── import-api-stop-helper │ │ │ ├── import-main-loop.py │ │ │ ├── import-mgm.py │ │ │ ├── import-stop-helper │ │ │ ├── nsx4ff │ │ │ ├── __init__.py │ │ │ ├── discovery_logging.conf │ │ │ ├── fwcommon.py │ │ │ ├── nsx_application.py │ │ │ ├── nsx_base.py │ │ │ ├── nsx_getter.py │ │ │ ├── nsx_network.py │ │ │ ├── nsx_rule.py │ │ │ ├── nsx_service.py │ │ │ └── nsx_zone.py │ │ │ ├── paloaltomanagement2023ff │ │ │ ├── __init__.py │ │ │ ├── discovery_logging.conf │ │ │ ├── fwcommon.py │ │ │ ├── palo_application.py │ │ │ ├── palo_base.py │ │ │ ├── palo_getter.py │ │ │ ├── palo_network.py │ │ │ ├── palo_rule.py │ │ │ ├── palo_service.py │ │ │ └── palo_zone.py │ │ │ └── ssh-client.pl │ ├── handlers │ │ └── main.yml │ ├── tasks │ │ ├── fetch-importer-pwd.yml │ │ ├── main.yml │ │ ├── run-upgrades.yml │ │ └── upgrade │ │ │ └── 5.1.17.yml │ └── templates │ │ ├── fworch-importer-api.service.j2 │ │ └── fworch-importer-legacy.service.j2 ├── lib │ ├── files │ │ ├── FWO.Api.Client │ │ │ ├── APIConnection.cs │ │ │ ├── APIcalls │ │ │ │ ├── allObjects │ │ │ │ │ ├── deleteOldObjectsCascading.graphql │ │ │ │ │ └── getAllObjectDetails.graphql │ │ │ │ ├── auth │ │ │ │ │ ├── addDeviceToTenant.graphql │ │ │ │ │ ├── addTenant.graphql │ │ │ │ │ ├── addTenantNetwork.graphql │ │ │ │ │ ├── addTenantToGateway.graphql │ │ │ │ │ ├── addTenantToManagement.graphql │ │ │ │ │ ├── assertUserExists.graphql │ │ │ │ │ ├── deleteAllGatewaysOfTenant.graphql │ │ │ │ │ ├── deleteAllManagementsOfTenant.graphql │ │ │ │ │ ├── deleteLdapConnection.graphql │ │ │ │ │ ├── deleteTenant.graphql │ │ │ │ │ ├── deleteTenantNetwork.graphql │ │ │ │ │ ├── deleteUser.graphql │ │ │ │ │ ├── getAllLdapConnections.graphql │ │ │ │ │ ├── getLdapConnections.graphql │ │ │ │ │ ├── getLdapConnectionsSubscription.graphql │ │ │ │ │ ├── getTenantId.graphql │ │ │ │ │ ├── getTenantNetworks.graphql │ │ │ │ │ ├── getTenantVisibleDeviceIds.graphql │ │ │ │ │ ├── getTenantVisibleManagementIds.graphql │ │ │ │ │ ├── getTenants.graphql │ │ │ │ │ ├── getUserByDbId.graphql │ │ │ │ │ ├── getUserByDn.graphql │ │ │ │ │ ├── getUserEmails.graphql │ │ │ │ │ ├── getUsers.graphql │ │ │ │ │ ├── getVisibleManagementIdsPerTenant.graphql │ │ │ │ │ ├── newLdapConnection.graphql │ │ │ │ │ ├── updateLdapConnection.graphql │ │ │ │ │ ├── updateTenant.graphql │ │ │ │ │ ├── updateUserEmail.graphql │ │ │ │ │ ├── updateUserLanguage.graphql │ │ │ │ │ ├── updateUserLastLogin.graphql │ │ │ │ │ ├── updateUserPasswordChange.graphql │ │ │ │ │ └── upsertUiUser.graphql │ │ │ │ ├── compliance │ │ │ │ │ ├── addNetworkZone.graphql │ │ │ │ │ ├── deleteNetworkZone.graphql │ │ │ │ │ ├── getNetworkZones.graphql │ │ │ │ │ ├── updateNetworkZone.graphql │ │ │ │ │ └── updateNetworkZoneCommunication.graphql │ │ │ │ ├── config │ │ │ │ │ ├── addConfigItem.graphql │ │ │ │ │ ├── deleteCustomText.graphql │ │ │ │ │ ├── getConfigItemByKey.graphql │ │ │ │ │ ├── getConfigItemsByUser.graphql │ │ │ │ │ ├── getCustomTextsPerLanguage.graphql │ │ │ │ │ ├── getLanguages.graphql │ │ │ │ │ ├── getTexts.graphql │ │ │ │ │ ├── getTextsPerLanguage.graphql │ │ │ │ │ ├── subscribeAutodiscoveryConfigChanges.graphql │ │ │ │ │ ├── subscribeConfigChangesByUser.graphql │ │ │ │ │ ├── subscribeDailyCheckConfigChanges.graphql │ │ │ │ │ ├── subscribeExternalRequestConfigChanges.graphql │ │ │ │ │ ├── subscribeImportAppDataConfigChanges.graphql │ │ │ │ │ ├── subscribeImportNotifyConfigChanges.graphql │ │ │ │ │ ├── subscribeImportSubnetDataConfigChanges.graphql │ │ │ │ │ ├── subscribeVarianceAnalysisConfigChanges.graphql │ │ │ │ │ ├── updateConfigItem.graphql │ │ │ │ │ ├── upsertConfig.graphql │ │ │ │ │ ├── upsertConfigItem.graphql │ │ │ │ │ ├── upsertConfigItems.graphql │ │ │ │ │ └── upsertCustomText.graphql │ │ │ │ ├── device │ │ │ │ │ ├── changeDeviceState.graphql │ │ │ │ │ ├── changeManagementState.graphql │ │ │ │ │ ├── deleteCredential.graphql │ │ │ │ │ ├── deleteDevice.graphql │ │ │ │ │ ├── deleteImport.graphql │ │ │ │ │ ├── deleteManagement.graphql │ │ │ │ │ ├── fragments │ │ │ │ │ │ ├── deviceDetails.graphql │ │ │ │ │ │ ├── deviceTypeDetails.graphql │ │ │ │ │ │ ├── importCredentials.graphql │ │ │ │ │ │ ├── importCredentialsWithoutSecrets.graphql │ │ │ │ │ │ ├── managementDetails.graphql │ │ │ │ │ │ └── managementDetailsWithoutSecrets.graphql │ │ │ │ │ ├── getCredentials.graphql │ │ │ │ │ ├── getCredentialsWithoutSecrets.graphql │ │ │ │ │ ├── getDeviceDetails.graphql │ │ │ │ │ ├── getDeviceTypeDetails.graphql │ │ │ │ │ ├── getDevicesByManagement.graphql │ │ │ │ │ ├── getManagementDetailsWithoutSecrets.graphql │ │ │ │ │ ├── getManagementNames.graphql │ │ │ │ │ ├── getManagementsDetails.graphql │ │ │ │ │ ├── getMgmtNumberUsingCred.graphql │ │ │ │ │ ├── newCredential.graphql │ │ │ │ │ ├── newDevice.graphql │ │ │ │ │ ├── newManagement.graphql │ │ │ │ │ ├── updateCredential.graphql │ │ │ │ │ ├── updateDevice.graphql │ │ │ │ │ └── updateManagement.graphql │ │ │ │ ├── extRequest │ │ │ │ │ ├── addExtRequest.graphql │ │ │ │ │ ├── addTicketId.graphql │ │ │ │ │ ├── fragments │ │ │ │ │ │ └── extRequestDetails.graphql │ │ │ │ │ ├── getAndLockOpenRequests.graphql │ │ │ │ │ ├── getLastRequest.graphql │ │ │ │ │ ├── getLatestTicketId.graphql │ │ │ │ │ ├── getOpenRequests.graphql │ │ │ │ │ ├── subscribeExtRequestStateUpdate.graphql │ │ │ │ │ ├── updateExtRequestCreation.graphql │ │ │ │ │ ├── updateExtRequestFinal.graphql │ │ │ │ │ ├── updateExtRequestProcess.graphql │ │ │ │ │ ├── updateExternalRequestLock.graphql │ │ │ │ │ └── updateExternalRequestWaitCycles.graphql │ │ │ │ ├── modelling │ │ │ │ │ ├── addAppServerToConnection.graphql │ │ │ │ │ ├── addHistoryEntry.graphql │ │ │ │ │ ├── addNwAppZone.graphql │ │ │ │ │ ├── addNwGroupToConnection.graphql │ │ │ │ │ ├── addNwObjectToNwGroup.graphql │ │ │ │ │ ├── addSelectedConnection.graphql │ │ │ │ │ ├── addSelectedNwGroupObject.graphql │ │ │ │ │ ├── addServiceGroupToConnection.graphql │ │ │ │ │ ├── addServiceToConnection.graphql │ │ │ │ │ ├── addServiceToServiceGroup.graphql │ │ │ │ │ ├── deleteAppServer.graphql │ │ │ │ │ ├── deleteConnection.graphql │ │ │ │ │ ├── deleteNwGroup.graphql │ │ │ │ │ ├── deleteService.graphql │ │ │ │ │ ├── deleteServiceGroup.graphql │ │ │ │ │ ├── fragments │ │ │ │ │ │ ├── appRoleDetails.graphql │ │ │ │ │ │ ├── appServerDetails.graphql │ │ │ │ │ │ ├── areaDetails.graphql │ │ │ │ │ │ ├── connectionDetails.graphql │ │ │ │ │ │ ├── connectionResolvedDetails.graphql │ │ │ │ │ │ ├── serviceDetails.graphql │ │ │ │ │ │ └── serviceGroupDetails.graphql │ │ │ │ │ ├── getAllAppServers.graphql │ │ │ │ │ ├── getAppRoles.graphql │ │ │ │ │ ├── getAppRolesForAppServer.graphql │ │ │ │ │ ├── getAppServerForAppRole.graphql │ │ │ │ │ ├── getAppServersByIp.graphql │ │ │ │ │ ├── getAppServersByName.graphql │ │ │ │ │ ├── getAppServersBySource.graphql │ │ │ │ │ ├── getAppServersForOwner.graphql │ │ │ │ │ ├── getAppZonesByAppId.graphql │ │ │ │ │ ├── getAreas.graphql │ │ │ │ │ ├── getCommonServices.graphql │ │ │ │ │ ├── getConnectionById.graphql │ │ │ │ │ ├── getConnectionIdsForAppServer.graphql │ │ │ │ │ ├── getConnectionIdsForNwGroup.graphql │ │ │ │ │ ├── getConnectionIdsForService.graphql │ │ │ │ │ ├── getConnectionIdsForServiceGroup.graphql │ │ │ │ │ ├── getConnections.graphql │ │ │ │ │ ├── getConnectionsByTicketId.graphql │ │ │ │ │ ├── getConnectionsResolved.graphql │ │ │ │ │ ├── getDummyAppRole.graphql │ │ │ │ │ ├── getGlobalServiceGroups.graphql │ │ │ │ │ ├── getGlobalServices.graphql │ │ │ │ │ ├── getHistory.graphql │ │ │ │ │ ├── getHistoryForApp.graphql │ │ │ │ │ ├── getInterfaceUsers.graphql │ │ │ │ │ ├── getNewestAppRoles.graphql │ │ │ │ │ ├── getNwGroupObjects.graphql │ │ │ │ │ ├── getPublishedInterfaces.graphql │ │ │ │ │ ├── getSelectedConnections.graphql │ │ │ │ │ ├── getSelectedNwGroupObjects.graphql │ │ │ │ │ ├── getServiceGroupById.graphql │ │ │ │ │ ├── getServiceGroupIdsForService.graphql │ │ │ │ │ ├── getServiceGroupsForApp.graphql │ │ │ │ │ ├── getServicesForApp.graphql │ │ │ │ │ ├── newAppRole.graphql │ │ │ │ │ ├── newAppServer.graphql │ │ │ │ │ ├── newArea.graphql │ │ │ │ │ ├── newAreaIpData.graphql │ │ │ │ │ ├── newConnection.graphql │ │ │ │ │ ├── newService.graphql │ │ │ │ │ ├── newServiceGroup.graphql │ │ │ │ │ ├── removeAppServerFromConnection.graphql │ │ │ │ │ ├── removeNwGroupFromConnection.graphql │ │ │ │ │ ├── removeNwObjectFromNwGroup.graphql │ │ │ │ │ ├── removeSelectedConnection.graphql │ │ │ │ │ ├── removeSelectedConnectionFromApp.graphql │ │ │ │ │ ├── removeSelectedNwGroupObject.graphql │ │ │ │ │ ├── removeSelectedNwGroupObjectFromAllApps.graphql │ │ │ │ │ ├── removeServiceFromConnection.graphql │ │ │ │ │ ├── removeServiceFromServiceGroup.graphql │ │ │ │ │ ├── removeServiceGroupFromConnection.graphql │ │ │ │ │ ├── replaceUsedInterface.graphql │ │ │ │ │ ├── setAppServerDeletedState.graphql │ │ │ │ │ ├── setAppServerName.graphql │ │ │ │ │ ├── setAppServerType.graphql │ │ │ │ │ ├── setAreaDeletedState.graphql │ │ │ │ │ ├── updateAppRole.graphql │ │ │ │ │ ├── updateAppServer.graphql │ │ │ │ │ ├── updateConnection.graphql │ │ │ │ │ ├── updateConnectionProperties.graphql │ │ │ │ │ ├── updateConnectionPublish.graphql │ │ │ │ │ ├── updateNwObjectInConnection.graphql │ │ │ │ │ ├── updateNwObjectInNwGroup.graphql │ │ │ │ │ ├── updateProposedConnectionOwner.graphql │ │ │ │ │ ├── updateService.graphql │ │ │ │ │ ├── updateServiceGroup.graphql │ │ │ │ │ └── upsertAppServer.graphql │ │ │ │ ├── monitor │ │ │ │ │ ├── acknowledgeAlert.graphql │ │ │ │ │ ├── addAlert.graphql │ │ │ │ │ ├── addAutodiscoveryLogEntry.graphql │ │ │ │ │ ├── addLogEntry.graphql │ │ │ │ │ ├── addUiLogEntry.graphql │ │ │ │ │ ├── getAlertById.graphql │ │ │ │ │ ├── getAlerts.graphql │ │ │ │ │ ├── getAllUiLogEntrys.graphql │ │ │ │ │ ├── getAutodiscoveryLogEntrys.graphql │ │ │ │ │ ├── getDailyCheckLogEntrys.graphql │ │ │ │ │ ├── getImportLogEntrys.graphql │ │ │ │ │ ├── getImportStatus.graphql │ │ │ │ │ ├── getLogEntrys.graphql │ │ │ │ │ ├── getOpenAlerts.graphql │ │ │ │ │ ├── getOwnerTickets.graphql │ │ │ │ │ ├── getUiLogEntrys.graphql │ │ │ │ │ └── subscribeAlertChanges.graphql │ │ │ │ ├── networkObject │ │ │ │ │ ├── fragments │ │ │ │ │ │ ├── networkObjectDetails.graphql │ │ │ │ │ │ └── networkObjectOverview.graphql │ │ │ │ │ ├── getNetworkObjectDetails.graphql │ │ │ │ │ ├── getNetworkObjectsForManagement.graphql │ │ │ │ │ └── getTenantNetworkObjectDetails.graphql │ │ │ │ ├── networkService │ │ │ │ │ ├── fragments │ │ │ │ │ │ ├── networkServiceDetails.graphql │ │ │ │ │ │ └── networkServiceOverview.graphql │ │ │ │ │ └── getNetworkServiceDetails.graphql │ │ │ │ ├── networking │ │ │ │ │ ├── analyzePath.graphql │ │ │ │ │ ├── getAllNetworkInfosPerDevice.graphql │ │ │ │ │ └── getAllNetworkInfosTable.graphql │ │ │ │ ├── owner │ │ │ │ │ ├── deactivateOwner.graphql │ │ │ │ │ ├── deleteAreaIpData.graphql │ │ │ │ │ ├── deleteNetworkOwnership.graphql │ │ │ │ │ ├── deleteOwner.graphql │ │ │ │ │ ├── deleteRuleOwnership.graphql │ │ │ │ │ ├── fragments │ │ │ │ │ │ └── ownerDetails.graphql │ │ │ │ │ ├── getEditableOwners.graphql │ │ │ │ │ ├── getEditableOwnersWithConn.graphql │ │ │ │ │ ├── getNetworkOwnerships.graphql │ │ │ │ │ ├── getOwnerId.graphql │ │ │ │ │ ├── getOwners.graphql │ │ │ │ │ ├── getOwnersForUser.graphql │ │ │ │ │ ├── getOwnersFromGroups.graphql │ │ │ │ │ ├── getOwnersWithConn.graphql │ │ │ │ │ ├── getRuleOwnerships.graphql │ │ │ │ │ ├── newNetworkOwnership.graphql │ │ │ │ │ ├── newOwner.graphql │ │ │ │ │ ├── newRuleOwnership.graphql │ │ │ │ │ ├── setDefaultOwner.graphql │ │ │ │ │ ├── setOwnerLastCheck.graphql │ │ │ │ │ └── updateOwner.graphql │ │ │ │ ├── recertification │ │ │ │ │ ├── addRecertEntries.graphql │ │ │ │ │ ├── clearOpenRecerts.graphql │ │ │ │ │ ├── fragments │ │ │ │ │ │ └── ruleOpenCertOverview.graphql │ │ │ │ │ ├── getOpenRecerts.graphql │ │ │ │ │ ├── getOpenRecertsForRule.graphql │ │ │ │ │ ├── prepareNextRecertification.graphql │ │ │ │ │ ├── recertify.graphql │ │ │ │ │ └── refreshViewRuleWithOwner.graphql │ │ │ │ ├── report │ │ │ │ │ ├── addGeneratedReport.graphql │ │ │ │ │ ├── addReportSchedule.graphql │ │ │ │ │ ├── addReportScheduleFileFormats.graphql │ │ │ │ │ ├── addReportTemplate.graphql │ │ │ │ │ ├── addReportTemplatePermission.graphql │ │ │ │ │ ├── countReportSchedule.graphql │ │ │ │ │ ├── deleteGeneratedReport.graphql │ │ │ │ │ ├── deleteReportSchedule.graphql │ │ │ │ │ ├── deleteReportTemplate.graphql │ │ │ │ │ ├── editReportSchedule.graphql │ │ │ │ │ ├── getAllObjectDetailsInReport.graphql │ │ │ │ │ ├── getGeneratedReport.graphql │ │ │ │ │ ├── getGeneratedReports.graphql │ │ │ │ │ ├── getImportsToNotify.graphql │ │ │ │ │ ├── getModelledRulesByManagementComment.graphql │ │ │ │ │ ├── getModelledRulesByManagementName.graphql │ │ │ │ │ ├── getNetworkObjectDetailsInReport.graphql │ │ │ │ │ ├── getNetworkServiceDetailsInReport.graphql │ │ │ │ │ ├── getObjectsNotInReport.graphql │ │ │ │ │ ├── getRelevantImportIdsAtTime.graphql │ │ │ │ │ ├── getReportById.graphql │ │ │ │ │ ├── getReportSchedules.graphql │ │ │ │ │ ├── getReportTemplates.graphql │ │ │ │ │ ├── getReportsOverview.graphql │ │ │ │ │ ├── getRuleIdsOfImport.graphql │ │ │ │ │ ├── getRuleUidsOfDevice.graphql │ │ │ │ │ ├── getRulesByManagement.graphql │ │ │ │ │ ├── getUsageDataCount.graphql │ │ │ │ │ ├── getUserDetailsInReport.graphql │ │ │ │ │ ├── setImportsNotified.graphql │ │ │ │ │ ├── statisticsCurrent.graphql │ │ │ │ │ ├── statisticsCurrentOverall.graphql │ │ │ │ │ ├── subscribeGeneratedReportsChanges.graphql │ │ │ │ │ ├── subscribeReportScheduleChanges.graphql │ │ │ │ │ ├── unused_addReportTemplatePlusPermissions.graphql │ │ │ │ │ ├── unused_getAllChangeDetails.graphql │ │ │ │ │ ├── unused_getRuleChangeDetails.graphql │ │ │ │ │ └── updateReportTemplate.graphql │ │ │ │ ├── request │ │ │ │ │ ├── addCommentToApproval.graphql │ │ │ │ │ ├── addCommentToImplTask.graphql │ │ │ │ │ ├── addCommentToReqTask.graphql │ │ │ │ │ ├── addCommentToTicket.graphql │ │ │ │ │ ├── addExtState.graphql │ │ │ │ │ ├── addOwnerToReqTask.graphql │ │ │ │ │ ├── addStateAction.graphql │ │ │ │ │ ├── deleteAction.graphql │ │ │ │ │ ├── deleteImplementationElement.graphql │ │ │ │ │ ├── deleteImplementationTask.graphql │ │ │ │ │ ├── deleteRequestElement.graphql │ │ │ │ │ ├── deleteRequestTask.graphql │ │ │ │ │ ├── deleteState.graphql │ │ │ │ │ ├── fragments │ │ │ │ │ │ ├── commentDetails.graphql │ │ │ │ │ │ ├── implTaskDetails.graphql │ │ │ │ │ │ ├── reqTaskDetails.graphql │ │ │ │ │ │ ├── reqTaskOverview.graphql │ │ │ │ │ │ ├── ticketDetails.graphql │ │ │ │ │ │ ├── ticketDetailsReqTaskOverview.graphql │ │ │ │ │ │ └── ticketOverview.graphql │ │ │ │ │ ├── getActions.graphql │ │ │ │ │ ├── getExtStates.graphql │ │ │ │ │ ├── getFullTickets.graphql │ │ │ │ │ ├── getStates.graphql │ │ │ │ │ ├── getTicketById.graphql │ │ │ │ │ ├── getTickets.graphql │ │ │ │ │ ├── getTicketsByOwners.graphql │ │ │ │ │ ├── newAction.graphql │ │ │ │ │ ├── newApproval.graphql │ │ │ │ │ ├── newComment.graphql │ │ │ │ │ ├── newImplementationElement.graphql │ │ │ │ │ ├── newImplementationTask.graphql │ │ │ │ │ ├── newRequestElement.graphql │ │ │ │ │ ├── newRequestTask.graphql │ │ │ │ │ ├── newTicket.graphql │ │ │ │ │ ├── removeExtState.graphql │ │ │ │ │ ├── removeOwnerFromReqTask.graphql │ │ │ │ │ ├── removeStateAction.graphql │ │ │ │ │ ├── subscribeTaskChanges.graphql │ │ │ │ │ ├── subscribeTicketStateChanges.graphql │ │ │ │ │ ├── updateAction.graphql │ │ │ │ │ ├── updateApproval.graphql │ │ │ │ │ ├── updateImplementationElement.graphql │ │ │ │ │ ├── updateImplementationTask.graphql │ │ │ │ │ ├── updateImplementationTaskState.graphql │ │ │ │ │ ├── updateRequestElement.graphql │ │ │ │ │ ├── updateRequestTask.graphql │ │ │ │ │ ├── updateRequestTaskAdditionalInfo.graphql │ │ │ │ │ ├── updateRequestTaskState.graphql │ │ │ │ │ ├── updateTicket.graphql │ │ │ │ │ ├── updateTicketState.graphql │ │ │ │ │ └── upsertState.graphql │ │ │ │ ├── rule │ │ │ │ │ ├── fragments │ │ │ │ │ │ ├── natRuleDetails.graphql │ │ │ │ │ │ ├── natRuleDetailsForReport.graphql │ │ │ │ │ │ ├── natRuleOverview.graphql │ │ │ │ │ │ ├── ruleDetails.graphql │ │ │ │ │ │ ├── ruleDetailsForReport.graphql │ │ │ │ │ │ └── ruleOverview.graphql │ │ │ │ │ ├── getNatRuleDetails.graphql │ │ │ │ │ ├── getNatRuleOverview.graphql │ │ │ │ │ ├── getRuleByUid.graphql │ │ │ │ │ ├── getRuleDetails.graphql │ │ │ │ │ └── getRuleOverview.graphql │ │ │ │ ├── stmTables │ │ │ │ │ ├── getIpProtocols.graphql │ │ │ │ │ ├── getRuleActions.graphql │ │ │ │ │ └── getTracking.graphql │ │ │ │ └── user │ │ │ │ │ ├── fragments │ │ │ │ │ ├── userDetails.graphql │ │ │ │ │ └── userOverview.graphql │ │ │ │ │ └── getUserDetails.graphql │ │ │ ├── ApiConstants.cs │ │ │ ├── ApiResponse.cs │ │ │ ├── ApiSubscription.cs │ │ │ ├── FWO.Api.Client.csproj │ │ │ ├── GraphQlApiConnection.cs │ │ │ ├── GraphQlApiSubscription.cs │ │ │ └── Queries │ │ │ │ ├── AuthQueries.cs │ │ │ │ ├── ComplianceQueries.cs │ │ │ │ ├── ConfigQueries.cs │ │ │ │ ├── DeviceQueries.cs │ │ │ │ ├── ExtRequestQueries.cs │ │ │ │ ├── ModellingQueries.cs │ │ │ │ ├── MonitorQueries.cs │ │ │ │ ├── NetworkAnalysisQueries.cs │ │ │ │ ├── ObjectQueries.cs │ │ │ │ ├── OwnerQueries.cs │ │ │ │ ├── Queries.cs │ │ │ │ ├── RecertQueries.cs │ │ │ │ ├── ReportQueries.cs │ │ │ │ ├── RequestQueries.cs │ │ │ │ ├── RuleQueries.cs │ │ │ │ └── StmQueries.cs │ │ ├── FWO.Basics │ │ │ ├── BooleanExtensions.cs │ │ │ ├── Comparer │ │ │ │ ├── IPAddressComparer.cs │ │ │ │ └── IPAddressRangeComparer.cs │ │ │ ├── FWO.Basics.csproj │ │ │ ├── GlobalConstants.cs │ │ │ ├── Icons.cs │ │ │ ├── IpOperations.cs │ │ │ ├── JwtConstants.cs │ │ │ ├── ReportType.cs │ │ │ ├── Roles.cs │ │ │ ├── StringExtensionsIp.cs │ │ │ └── TestDataGeneration │ │ │ │ ├── TestDataGenerationResult.cs │ │ │ │ └── TestDataGenerator.cs │ │ ├── FWO.Config.Api │ │ │ ├── Config.cs │ │ │ ├── Data │ │ │ │ ├── CommonArea.cs │ │ │ │ ├── ConfigData.cs │ │ │ │ ├── ConfigItem.cs │ │ │ │ ├── Language.cs │ │ │ │ ├── RecertCheckParams.cs │ │ │ │ └── UiText.cs │ │ │ ├── FWO.Config.Api.csproj │ │ │ ├── GlobalConfig.cs │ │ │ └── UserConfig.cs │ │ ├── FWO.Config.File │ │ │ ├── ConfigFile.cs │ │ │ ├── FWO.Config.File.csproj │ │ │ └── KeyImporter.cs │ │ ├── FWO.Data │ │ │ ├── ActionItem.cs │ │ │ ├── Alert.cs │ │ │ ├── ApiCrudHelper.cs │ │ │ ├── ChangeImport.cs │ │ │ ├── Cidr.cs │ │ │ ├── ComplianceNetworkZone.cs │ │ │ ├── Device.cs │ │ │ ├── DeviceType.cs │ │ │ ├── Direction.cs │ │ │ ├── DisplayBase.cs │ │ │ ├── DistName.cs │ │ │ ├── EmailRecipientOption.cs │ │ │ ├── ExtStates.cs │ │ │ ├── ExternalRequest.cs │ │ │ ├── ExternalTicketSystem.cs │ │ │ ├── FWO.Data.csproj │ │ │ ├── FwoOwner.cs │ │ │ ├── FwoOwnerBase.cs │ │ │ ├── Group.cs │ │ │ ├── GroupFlat.cs │ │ │ ├── ImpChangeNotificationType.cs │ │ │ ├── Import.cs │ │ │ ├── ImportCredential.cs │ │ │ ├── ImportStatus.cs │ │ │ ├── IpProtocol.cs │ │ │ ├── JsonCustomConverters.cs │ │ │ ├── LdapConnectionBase.cs │ │ │ ├── LogEntry.cs │ │ │ ├── Management.cs │ │ │ ├── Middleware │ │ │ │ ├── AuthenticationServerParameters.cs │ │ │ │ ├── AuthenticationTokenParameters.cs │ │ │ │ ├── ExternalRequestParameters.cs │ │ │ │ ├── GroupParameters.cs │ │ │ │ ├── ReportParameters.cs │ │ │ │ ├── RoleParameters.cs │ │ │ │ ├── TenantParameters.cs │ │ │ │ └── UserParameters.cs │ │ │ ├── Modelling │ │ │ │ ├── ModellingAppRole.cs │ │ │ │ ├── ModellingAppServer.cs │ │ │ │ ├── ModellingAppZone.cs │ │ │ │ ├── ModellingConnection.cs │ │ │ │ ├── ModellingDnDContainer.cs │ │ │ │ ├── ModellingExtraConfig.cs │ │ │ │ ├── ModellingHistoryEntry.cs │ │ │ │ ├── ModellingManagedIdString.cs │ │ │ │ ├── ModellingNamingConvention.cs │ │ │ │ ├── ModellingNetworkArea.cs │ │ │ │ ├── ModellingNwGroup.cs │ │ │ │ ├── ModellingNwObject.cs │ │ │ │ ├── ModellingObject.cs │ │ │ │ ├── ModellingService.cs │ │ │ │ ├── ModellingServiceGroup.cs │ │ │ │ ├── ModellingSvcObject.cs │ │ │ │ ├── ModellingTypes.cs │ │ │ │ ├── ModellingVarianceResult.cs │ │ │ │ └── RuleRecognitionOption.cs │ │ │ ├── NatData.cs │ │ │ ├── NetworkLocation.cs │ │ │ ├── NetworkObject.cs │ │ │ ├── NetworkObjectType.cs │ │ │ ├── NetworkObjectWrapper.cs │ │ │ ├── NetworkProtocol.cs │ │ │ ├── NetworkService.cs │ │ │ ├── NetworkServiceType.cs │ │ │ ├── NetworkUser.cs │ │ │ ├── NetworkUserType.cs │ │ │ ├── NetworkZone.cs │ │ │ ├── ObjectStatistics.cs │ │ │ ├── OwnerIdModel.cs │ │ │ ├── OwnerRefresh.cs │ │ │ ├── PaginationVariables.cs │ │ │ ├── Recertification.cs │ │ │ ├── RecertificationBase.cs │ │ │ ├── Report │ │ │ │ ├── ConnectionReport.cs │ │ │ │ ├── DeviceFilter.cs │ │ │ │ ├── DeviceReport.cs │ │ │ │ ├── FileFormat.cs │ │ │ │ ├── GlobalCommonSvcReport.cs │ │ │ │ ├── ManagementReport.cs │ │ │ │ ├── ModellingFilter.cs │ │ │ │ ├── OwnerReport.cs │ │ │ │ ├── RecertFilter.cs │ │ │ │ ├── ReportData.cs │ │ │ │ ├── ReportFile.cs │ │ │ │ ├── ReportSchedule.cs │ │ │ │ ├── ReportTemplate.cs │ │ │ │ ├── TenantFilter.cs │ │ │ │ ├── TimeFilter.cs │ │ │ │ └── UnusedFilter.cs │ │ │ ├── Role.cs │ │ │ ├── Rule.cs │ │ │ ├── RuleAction.cs │ │ │ ├── RuleChange.cs │ │ │ ├── RuleMetadata.cs │ │ │ ├── Sanitizer.cs │ │ │ ├── ServiceWrapper.cs │ │ │ ├── Tenant.cs │ │ │ ├── TicketId.cs │ │ │ ├── TimeWrapper.cs │ │ │ ├── Tracking.cs │ │ │ ├── UiLdapConnection.cs │ │ │ ├── UiUser.cs │ │ │ ├── UserGroup.cs │ │ │ ├── UserWrapper.cs │ │ │ └── Workflow │ │ │ │ ├── NwObjectElement.cs │ │ │ │ ├── NwRuleElement.cs │ │ │ │ ├── NwServiceElement.cs │ │ │ │ ├── OwnerTicket.cs │ │ │ │ ├── WfApproval.cs │ │ │ │ ├── WfApprovalBase.cs │ │ │ │ ├── WfApprovalWriter.cs │ │ │ │ ├── WfComment.cs │ │ │ │ ├── WfCommentBase.cs │ │ │ │ ├── WfElementBase.cs │ │ │ │ ├── WfExtState.cs │ │ │ │ ├── WfImplElement.cs │ │ │ │ ├── WfImplTask.cs │ │ │ │ ├── WfOwnerWriter.cs │ │ │ │ ├── WfPriority.cs │ │ │ │ ├── WfReqElement.cs │ │ │ │ ├── WfReqElementWriter.cs │ │ │ │ ├── WfReqTask.cs │ │ │ │ ├── WfReqTaskBase.cs │ │ │ │ ├── WfReqTaskWriter.cs │ │ │ │ ├── WfStateAction.cs │ │ │ │ ├── WfStatefulObject.cs │ │ │ │ ├── WfStates.cs │ │ │ │ ├── WfTaskBase.cs │ │ │ │ ├── WfTicket.cs │ │ │ │ ├── WfTicketBase.cs │ │ │ │ └── WfTicketWriter.cs │ │ ├── FWO.DeviceAutoDiscovery │ │ │ ├── AutoDiscoveryBase.cs │ │ │ ├── AutoDiscoveryCpMds.cs │ │ │ ├── AutoDiscoveryFortiManager.cs │ │ │ ├── CheckPointAPI.cs │ │ │ ├── FWO.DeviceAutoDiscovery.csproj │ │ │ └── FortiManagerAPI.cs │ │ ├── FWO.Encryption │ │ │ ├── AesEnc.cs │ │ │ └── FWO.Encryption.csproj │ │ ├── FWO.Logging │ │ │ ├── FWO.Logging.csproj │ │ │ └── Log.cs │ │ ├── FWO.Mail │ │ │ ├── EmailConnection.cs │ │ │ ├── EmailForm.cs │ │ │ ├── FWO.Mail.csproj │ │ │ └── MailerMailKit.cs │ │ ├── FWO.Middleware.Client │ │ │ ├── FWO.Middleware.Client.csproj │ │ │ ├── JwtReader.cs │ │ │ └── MiddlewareClient.cs │ │ ├── FWO.Recert │ │ │ ├── FWO.Recert.csproj │ │ │ └── RecertRefresh.cs │ │ ├── FWO.Report.Filter │ │ │ ├── Ast │ │ │ │ ├── AstKind.cs │ │ │ │ ├── AstNode.cs │ │ │ │ ├── AstNodeConnector.cs │ │ │ │ ├── AstNodeFilter.cs │ │ │ │ ├── AstNodeFilterBool.cs │ │ │ │ ├── AstNodeFilterDateTimeRange.cs │ │ │ │ ├── AstNodeFilterInt.cs │ │ │ │ ├── AstNodeFilterNetwork.cs │ │ │ │ ├── AstNodeFilterReportType.cs │ │ │ │ ├── AstNodeFilterString.cs │ │ │ │ └── AstNodeUnary.cs │ │ │ ├── Compiler.cs │ │ │ ├── DynGraphqlQuery.cs │ │ │ ├── Exceptions │ │ │ │ ├── FilterException.cs │ │ │ │ ├── SemanticException.cs │ │ │ │ └── SyntaxException.cs │ │ │ ├── FWO.Report.Filter.csproj │ │ │ ├── FilterTypes │ │ │ │ ├── DateTimeRange.cs │ │ │ │ └── ReportFilters.cs │ │ │ ├── Parser.cs │ │ │ ├── Scanner.cs │ │ │ ├── Token.cs │ │ │ ├── TokenKind.cs │ │ │ └── TokenSyntax.cs │ │ ├── FWO.Report │ │ │ ├── Data │ │ │ │ ├── ToCHeader.cs │ │ │ │ └── ToCItem.cs │ │ │ ├── Display │ │ │ │ ├── NatRuleDisplayHtml.cs │ │ │ │ ├── NwObjDisplay.cs │ │ │ │ ├── RuleChangeDisplayCsv.cs │ │ │ │ ├── RuleChangeDisplayHtml.cs │ │ │ │ ├── RuleChangeDisplayJson.cs │ │ │ │ ├── RuleDifferenceDisplayHtml.cs │ │ │ │ ├── RuleDisplayBase.cs │ │ │ │ ├── RuleDisplayCsv.cs │ │ │ │ ├── RuleDisplayHtml.cs │ │ │ │ └── RuleDisplayJson.cs │ │ │ ├── FWO.Report.csproj │ │ │ ├── PaperFormat.cs │ │ │ ├── ReportAppRules.cs │ │ │ ├── ReportBase.cs │ │ │ ├── ReportChanges.cs │ │ │ ├── ReportConnections.cs │ │ │ ├── ReportDevicesBase.cs │ │ │ ├── ReportGenerator.cs │ │ │ ├── ReportHtmlTemplate.html │ │ │ ├── ReportNatRules.cs │ │ │ ├── ReportOwnersBase.cs │ │ │ ├── ReportRules.cs │ │ │ ├── ReportStatistics.cs │ │ │ └── ReportVariances.cs │ │ ├── FWO.Services │ │ │ ├── ActionHandler.cs │ │ │ ├── AppRoleComparer.cs │ │ │ ├── AppServerComparer.cs │ │ │ ├── AppServerHelper.cs │ │ │ ├── DefaultInit.cs │ │ │ ├── EmailHelper.cs │ │ │ ├── EventMediator │ │ │ │ ├── EventMediator.cs │ │ │ │ ├── Events │ │ │ │ │ ├── CollectionChangedEvent.cs │ │ │ │ │ └── CollectionChangedEventArgs.cs │ │ │ │ └── Interfaces │ │ │ │ │ ├── IEvent.cs │ │ │ │ │ ├── IEventArgs.cs │ │ │ │ │ └── IEventMediator.cs │ │ │ ├── ExtStateHandler.cs │ │ │ ├── FWO.Services.csproj │ │ │ ├── GroupAccess.cs │ │ │ ├── ModellingAppRoleHandler.cs │ │ │ ├── ModellingAppServerHandler.cs │ │ │ ├── ModellingAppServerListHandler.cs │ │ │ ├── ModellingAppZoneHandler.cs │ │ │ ├── ModellingConnectionHandler.cs │ │ │ ├── ModellingHandlerBase.cs │ │ │ ├── ModellingServiceGroupHandler.cs │ │ │ ├── ModellingServiceHandler.cs │ │ │ ├── ModellingVarianceAnalysis.cs │ │ │ ├── ModellingVarianceAnalysisGetProd.cs │ │ │ ├── ModellingVarianceAnalysisObjectsForRequest.cs │ │ │ ├── ModellingVarianceAnalysisRules.cs │ │ │ ├── NetworkObjectComparer.cs │ │ │ ├── NetworkServiceComparer.cs │ │ │ ├── PathAnalysis.cs │ │ │ ├── StateMatrix.cs │ │ │ ├── TicketCreator.cs │ │ │ ├── WfDbAccess.cs │ │ │ ├── WfHandler.cs │ │ │ └── WfStateDict.cs │ │ └── FWO.Tufin.SecureChange │ │ │ ├── ExternalTicket.cs │ │ │ ├── ExternalTicketTask.cs │ │ │ ├── FWO.Tufin.SecureChange.csproj │ │ │ ├── SCAccessRequestTicketTask.cs │ │ │ ├── SCNetworkObjectModifyTicketTask.cs │ │ │ ├── SCTicket.cs │ │ │ └── SCTicketTask.cs │ ├── handlers │ │ └── main.yml │ └── tasks │ │ ├── install_dot_net.yml │ │ ├── install_puppeteer.yml │ │ └── main.yml ├── middleware │ ├── files │ │ ├── FWO.Middleware.Server │ │ │ ├── AppDataImport.cs │ │ │ ├── AreaIpDataImport.cs │ │ │ ├── AutoDiscoverScheduler.cs │ │ │ ├── Controllers │ │ │ │ ├── AuthenticationServerController.cs │ │ │ │ ├── AuthenticationTokenController.cs │ │ │ │ ├── ExternalRequestController.cs │ │ │ │ ├── GroupController.cs │ │ │ │ ├── ReportController.cs │ │ │ │ ├── RoleController.cs │ │ │ │ ├── TenantController.cs │ │ │ │ └── UserController.cs │ │ │ ├── DailyCheckScheduler.cs │ │ │ ├── DataImportBase.cs │ │ │ ├── ExternalRequestHandler.cs │ │ │ ├── ExternalRequestScheduler.cs │ │ │ ├── ExternalRequestSender.cs │ │ │ ├── FWO.Middleware.Server.csproj │ │ │ ├── ImportAppDataScheduler.cs │ │ │ ├── ImportChangeNotifier.cs │ │ │ ├── ImportChangeNotifyScheduler.cs │ │ │ ├── ImportIpDataScheduler.cs │ │ │ ├── JwtWriter.cs │ │ │ ├── LdapBasic.cs │ │ │ ├── LdapGroupHandling.cs │ │ │ ├── LdapTenantHandling.cs │ │ │ ├── ModellingImportAppData.cs │ │ │ ├── ModellingImportNwData.cs │ │ │ ├── Program.cs │ │ │ ├── Properties │ │ │ │ └── launchSettings.json │ │ │ ├── RecertCheck.cs │ │ │ ├── ReportScheduler.cs │ │ │ ├── SchedulerBase.cs │ │ │ ├── UiUserHandler.cs │ │ │ ├── VarianceAnalysisScheduler.cs │ │ │ ├── appsettings.Development.json │ │ │ └── appsettings.json │ │ ├── get_pg_version.sh │ │ ├── jwt_test_private_key.pem │ │ └── jwt_test_public_key.pem │ ├── handlers │ │ └── main.yml │ ├── tasks │ │ ├── create_auth_secrets.yml │ │ ├── install_and_run_mw_service.yml │ │ ├── main.yml │ │ ├── mw_apache_install_and_setup.yml │ │ ├── run-upgrades.yml │ │ ├── set_initial_ldap_tree.yml │ │ ├── upgrade │ │ │ ├── 5.4.1.yml │ │ │ ├── 5.5.1.yml │ │ │ └── 5.5.5.yml │ │ ├── upgrade_ldap_tree.yml │ │ ├── upgrade_ldif_file.yml │ │ └── upgrade_modify_routine.yml │ └── templates │ │ ├── fworch-middleware.service.j2 │ │ ├── httpd.conf │ │ ├── ldif_files │ │ ├── tree_level_0.ldif.j2 │ │ ├── tree_level_1.ldif.j2 │ │ ├── tree_level_2.ldif.j2 │ │ ├── tree_operators.ldif.j2 │ │ ├── tree_roles.ldif.j2 │ │ ├── tree_systemusers.ldif.j2 │ │ └── tree_tenant0.ldif.j2 │ │ └── upgrade │ │ ├── 5.1.1.ldif.j2 │ │ ├── 5.1.2.ldif.j2 │ │ ├── 5.2.2.1.ldif.j2 │ │ ├── 5.2.2.10.ldif.j2 │ │ ├── 5.2.2.11.ldif.j2 │ │ ├── 5.2.2.2.ldif.j2 │ │ ├── 5.2.2.3.ldif.j2 │ │ ├── 5.2.2.4.ldif.j2 │ │ ├── 5.2.2.5.ldif.j2 │ │ ├── 5.2.2.6.ldif.j2 │ │ ├── 5.2.2.7.ldif.j2 │ │ ├── 5.2.2.8.ldif.j2 │ │ ├── 5.2.2.9.ldif.j2 │ │ ├── 5.2.2.ldif.j2 │ │ ├── 5.2.5.ldif.j2 │ │ ├── 5.4.1.ldif.j2 │ │ ├── 5.7.1.ldif.j2 │ │ └── 7.2.4.ldif.j2 ├── openldap-server │ ├── README.md │ ├── defaults │ │ └── main.yml │ ├── files │ │ └── DB_CONFIG │ ├── handlers │ │ └── main.yml │ ├── meta │ │ └── main.yml │ ├── tasks │ │ ├── main.yml │ │ ├── run-upgrades.yml │ │ └── upgrade │ │ │ ├── 5.1.17.yml │ │ │ ├── 5.4.1.yml │ │ │ ├── 5.7.1.yml │ │ │ └── 6.4.9.yml │ ├── templates │ │ ├── config.ldif.j2 │ │ ├── ldap.conf.j2 │ │ ├── override.conf.j2 │ │ └── upgrade │ │ │ ├── 5.4.1.ldif.j2 │ │ │ └── 6.4.9.ldif.j2 │ └── vars │ │ ├── Debian.yml │ │ ├── RedHat.yml │ │ └── main.yml ├── openssl-cert │ └── tasks │ │ └── main.yml ├── sample-auth-data │ ├── defaults │ │ └── main.yml │ ├── tasks │ │ ├── auth_sample_data.yml │ │ ├── main.yml │ │ ├── modify_ldap_tree.yml │ │ └── sample_owner_data.yml │ └── templates │ │ ├── tree_groups_for_sample_operators.ldif.j2 │ │ ├── tree_roles_for_sample_operators.ldif.j2 │ │ ├── tree_sample_groups.ldif.j2 │ │ ├── tree_sample_operators.ldif.j2 │ │ └── tree_sample_tenants.ldif.j2 ├── sample-data │ ├── files │ │ ├── DB_CONFIG │ │ ├── config_changes │ │ │ ├── changeRule.py │ │ │ ├── unused_enlarge_rule.py │ │ │ └── write_date_to_comment.py │ │ └── ssh-keyscan.sh │ ├── tasks │ │ ├── add_second_ldap_db.yml │ │ ├── create-demo-credentials.yml │ │ ├── create-devices.yml │ │ ├── create-test-credentials.yml │ │ ├── main.yml │ │ ├── setup-sample-import.yml │ │ └── unused_setup-config-changes.yml │ └── templates │ │ ├── ext_add_user.ldif.j2 │ │ ├── ext_role.ldif.j2 │ │ ├── ext_roles.ldif.j2 │ │ ├── ext_user.ldif.j2 │ │ └── second_db.ldif.j2 ├── tests-integration │ ├── files │ │ ├── api │ │ │ ├── test-graphql.md │ │ │ └── test_api.sh │ │ ├── auth │ │ │ ├── config.ldif │ │ │ └── roles.ldif │ │ ├── importer │ │ │ ├── CP-R8x │ │ │ │ ├── iso_cp_r8x_api_generate_testdata.py │ │ │ │ ├── iso_cp_r8x_api_get_layer_names.py │ │ │ │ └── unused_create_csv_sting.sh │ │ │ ├── anonymizer │ │ │ │ ├── strings-customer-003.txt │ │ │ │ └── use_current_version_from_github.txt │ │ │ ├── config_changes │ │ │ │ ├── enlarge_rule.py │ │ │ │ └── write_date_to_comment.py │ │ │ ├── sample-configs │ │ │ │ ├── checkpoint_demo │ │ │ │ │ ├── fwauth.NDB │ │ │ │ │ ├── objects_5_0.C │ │ │ │ │ └── rulebases_5_0.fws │ │ │ │ ├── fortinet_demo │ │ │ │ │ └── fortigate.cfg │ │ │ │ └── screenos_demo │ │ │ │ │ └── ns_sys_config │ │ │ └── ssh-keyscan.sh │ │ └── tenant_networks │ │ │ └── create_tenant_network_data.py │ ├── handlers │ │ └── main.yml │ └── tasks │ │ ├── b64pad.yml │ │ ├── main.yml │ │ ├── test-api.yml │ │ ├── test-auth.yml │ │ ├── test-database.yml │ │ ├── test-importer.yml │ │ ├── test-web.yml │ │ └── write-config-test-user-creds.yml ├── tests-unit │ ├── files │ │ └── FWO.Test │ │ │ ├── AesEncryptionTest.cs │ │ │ ├── ApiConfigTest.cs │ │ │ ├── ApiTest.cs │ │ │ ├── AppRoleTest.cs │ │ │ ├── ComparerTest.cs │ │ │ ├── ConfigFileTest.cs │ │ │ ├── DisplayBaseTest.cs │ │ │ ├── DistNameTest.cs │ │ │ ├── ExportTest.cs │ │ │ ├── ExtStateTestApiConn.cs │ │ │ ├── FWO.Test.csproj │ │ │ ├── FakeLocalTimeZone.cs │ │ │ ├── FilterTest.cs │ │ │ ├── HtmlToPdfTest.cs │ │ │ ├── IPAddressRangeComparerTest.cs │ │ │ ├── IPOverlapTest.cs │ │ │ ├── LockTest.cs │ │ │ ├── ManagedIdStringTest.cs │ │ │ ├── ModellingHandlerTest.cs │ │ │ ├── ModellingHandlerTestApiConn.cs │ │ │ ├── ModellingVarianceAnalysisTest.cs │ │ │ ├── ModellingVarianceAnalysisTestApiConn.cs │ │ │ ├── SCTicketTest.cs │ │ │ ├── SanitizerTest.cs │ │ │ ├── SimulatedApiConnection.cs │ │ │ ├── SimulatedReport.cs │ │ │ ├── SimulatedUserConfig.cs │ │ │ ├── TestDataGeneratorTest.cs │ │ │ ├── TestHelper.cs │ │ │ ├── TestInitializer.cs │ │ │ ├── UiRsbLinkTest.cs │ │ │ └── UiRsbTestApiConn.cs │ └── tasks │ │ └── main.yml ├── ui │ ├── files │ │ └── FWO.UI │ │ │ ├── App.razor │ │ │ ├── Auth │ │ │ └── AuthStateProvider.cs │ │ │ ├── Data │ │ │ ├── CSVAppServerImportModel.cs │ │ │ ├── CSVFileUploadErrorModel.cs │ │ │ ├── CollapseState.cs │ │ │ ├── ErrorBaseModel.cs │ │ │ ├── FileUploadCase.cs │ │ │ ├── MessageType.cs │ │ │ ├── NavItem.cs │ │ │ ├── OrderMode.cs │ │ │ ├── PopupSize.cs │ │ │ └── UIMessage.cs │ │ │ ├── FWO.Ui.csproj │ │ │ ├── Pages │ │ │ ├── Certification.razor │ │ │ ├── Compliance │ │ │ │ ├── ComplianceLayout.razor │ │ │ │ ├── ZoneTable.razor │ │ │ │ ├── ZonesChecks.razor │ │ │ │ ├── ZonesConfiguration.razor │ │ │ │ ├── ZonesMatrix.razor │ │ │ │ └── ZonesMatrix.razor.css │ │ │ ├── Error.razor │ │ │ ├── Help │ │ │ │ ├── HelpApi.cshtml │ │ │ │ ├── HelpApiAppDataImport.cshtml │ │ │ │ ├── HelpApiFwoGraphql.cshtml │ │ │ │ ├── HelpApiFwoHasura.cshtml │ │ │ │ ├── HelpApiFwoLinks.cshtml │ │ │ │ ├── HelpApiFwoMutation.cshtml │ │ │ │ ├── HelpApiFwoQuery.cshtml │ │ │ │ ├── HelpApiLogin.cshtml │ │ │ │ ├── HelpApiLogout.cshtml │ │ │ │ ├── HelpApiReporting.cshtml │ │ │ │ ├── HelpApiSecurity.cshtml │ │ │ │ ├── HelpApiSidebar.cshtml │ │ │ │ ├── HelpApiSubnetDataImport.cshtml │ │ │ │ ├── HelpApiUserAuth.cshtml │ │ │ │ ├── HelpArchitechture.cshtml │ │ │ │ ├── HelpEmptySidebar.cshtml │ │ │ │ ├── HelpLayout.cshtml │ │ │ │ ├── HelpModelling.cshtml │ │ │ │ ├── HelpModellingApplications.cshtml │ │ │ │ ├── HelpModellingConnections.cshtml │ │ │ │ ├── HelpModellingNetworkObjects.cshtml │ │ │ │ ├── HelpModellingRollout.cshtml │ │ │ │ ├── HelpModellingServices.cshtml │ │ │ │ ├── HelpModellingSidebar.cshtml │ │ │ │ ├── HelpModellingWorkflow.cshtml │ │ │ │ ├── HelpMonitoring.cshtml │ │ │ │ ├── HelpMonitoringAllAlerts.cshtml │ │ │ │ ├── HelpMonitoringAutodiscovery.cshtml │ │ │ │ ├── HelpMonitoringDailyChecks.cshtml │ │ │ │ ├── HelpMonitoringExternalRequestTickets.cshtml │ │ │ │ ├── HelpMonitoringExternalRequests.cshtml │ │ │ │ ├── HelpMonitoringImportStatus.cshtml │ │ │ │ ├── HelpMonitoringImportlogs.cshtml │ │ │ │ ├── HelpMonitoringOpenAlerts.cshtml │ │ │ │ ├── HelpMonitoringSidebar.cshtml │ │ │ │ ├── HelpMonitoringUiMessages.cshtml │ │ │ │ ├── HelpRecertLogic.cshtml │ │ │ │ ├── HelpRecertOwnerImport.cshtml │ │ │ │ ├── HelpRecertRequire.cshtml │ │ │ │ ├── HelpRecertWorkflow.cshtml │ │ │ │ ├── HelpRecertification.cshtml │ │ │ │ ├── HelpRecertificationSidebar.cshtml │ │ │ │ ├── HelpReporting.cshtml │ │ │ │ ├── HelpReportingArchive.cshtml │ │ │ │ ├── HelpReportingDataOutput.cshtml │ │ │ │ ├── HelpReportingExport.cshtml │ │ │ │ ├── HelpReportingFilter.cshtml │ │ │ │ ├── HelpReportingLeftSidebar.cshtml │ │ │ │ ├── HelpReportingRightSidebar.cshtml │ │ │ │ ├── HelpReportingScheduling.cshtml │ │ │ │ ├── HelpReportingSidebar.cshtml │ │ │ │ ├── HelpReportingTemplates.cshtml │ │ │ │ ├── HelpReportingTypes.cshtml │ │ │ │ ├── HelpSettings.cshtml │ │ │ │ ├── HelpSettingsCredentials.cshtml │ │ │ │ ├── HelpSettingsCustomTexts.cshtml │ │ │ │ ├── HelpSettingsCustomizing.cshtml │ │ │ │ ├── HelpSettingsDefaults.cshtml │ │ │ │ ├── HelpSettingsEmail.cshtml │ │ │ │ ├── HelpSettingsExternalWorkflow.cshtml │ │ │ │ ├── HelpSettingsGateways.cshtml │ │ │ │ ├── HelpSettingsGroups.cshtml │ │ │ │ ├── HelpSettingsImporter.cshtml │ │ │ │ ├── HelpSettingsLanguage.cshtml │ │ │ │ ├── HelpSettingsLdap.cshtml │ │ │ │ ├── HelpSettingsManagements.cshtml │ │ │ │ ├── HelpSettingsModelling.cshtml │ │ │ │ ├── HelpSettingsModellingPers.cshtml │ │ │ │ ├── HelpSettingsOwners.cshtml │ │ │ │ ├── HelpSettingsPassword.cshtml │ │ │ │ ├── HelpSettingsPasswordPolicy.cshtml │ │ │ │ ├── HelpSettingsRecertificationGen.cshtml │ │ │ │ ├── HelpSettingsRecertificationPers.cshtml │ │ │ │ ├── HelpSettingsReport.cshtml │ │ │ │ ├── HelpSettingsReportGen.cshtml │ │ │ │ ├── HelpSettingsRoles.cshtml │ │ │ │ ├── HelpSettingsSidebar.cshtml │ │ │ │ ├── HelpSettingsStateActions.cshtml │ │ │ │ ├── HelpSettingsStateDefinitions.cshtml │ │ │ │ ├── HelpSettingsStateMatrix.cshtml │ │ │ │ ├── HelpSettingsTenants.cshtml │ │ │ │ ├── HelpSettingsUsers.cshtml │ │ │ │ ├── HelpWorkflow.cshtml │ │ │ │ ├── HelpWorkflowActions.cshtml │ │ │ │ ├── HelpWorkflowChecklist.cshtml │ │ │ │ ├── HelpWorkflowExamples.cshtml │ │ │ │ ├── HelpWorkflowObjects.cshtml │ │ │ │ ├── HelpWorkflowPhasesRoles.cshtml │ │ │ │ ├── HelpWorkflowSidebar.cshtml │ │ │ │ ├── HelpWorkflowStates.cshtml │ │ │ │ ├── HelpWorkflowTaskTypes.cshtml │ │ │ │ ├── Index.cshtml │ │ │ │ └── Index.cshtml.cs │ │ │ ├── Login.razor │ │ │ ├── Logout.razor │ │ │ ├── Monitoring │ │ │ │ ├── MonitorAlerts.razor │ │ │ │ ├── MonitorAll.razor │ │ │ │ ├── MonitorAutodiscoveryLog.razor │ │ │ │ ├── MonitorDailyChecks.razor │ │ │ │ ├── MonitorExternalRequestTickets.razor │ │ │ │ ├── MonitorExternalRequests.razor │ │ │ │ ├── MonitorImportLog.razor │ │ │ │ ├── MonitorImportStatus.razor │ │ │ │ ├── MonitorUiLog.razor │ │ │ │ ├── MonitoringMain.razor │ │ │ │ └── _Imports.razor │ │ │ ├── NetworkAnalysis.razor │ │ │ ├── NetworkModelling │ │ │ │ ├── AddExtraConfig.razor │ │ │ │ ├── EditAppRole.razor │ │ │ │ ├── EditAppRole.razor.css │ │ │ │ ├── EditAppRoleLeftSide.razor │ │ │ │ ├── EditAppServer.razor │ │ │ │ ├── EditConn.razor │ │ │ │ ├── EditConnLeftSide.razor │ │ │ │ ├── EditConnPopup.razor │ │ │ │ ├── EditService.razor │ │ │ │ ├── EditServiceGroup.razor │ │ │ │ ├── EditServiceGroupLeftSide.razor │ │ │ │ ├── ManualAppServer.razor │ │ │ │ ├── NetworkModelling.razor │ │ │ │ ├── PredefServices.razor │ │ │ │ ├── RejectInterfacePopup.razor │ │ │ │ ├── RequestFwChangePopup.razor │ │ │ │ ├── RequestInterfacePopup.razor │ │ │ │ ├── SearchInterface.razor │ │ │ │ ├── SearchInterface.razor.css │ │ │ │ ├── SearchNwObject.razor │ │ │ │ ├── ShareLink.razor │ │ │ │ ├── ShowHistory.razor │ │ │ │ └── _Imports.razor │ │ │ ├── Reporting │ │ │ │ ├── Archive.razor │ │ │ │ ├── Report.razor │ │ │ │ ├── ReportCreateTicket.razor │ │ │ │ ├── ReportDownloadPopUp.razor │ │ │ │ ├── ReportExport.razor │ │ │ │ ├── ReportModellingParamSelection.razor │ │ │ │ ├── ReportRecertParamSelection.razor │ │ │ │ ├── ReportSelectTime.razor │ │ │ │ ├── ReportTemplateComponent.razor │ │ │ │ ├── ReportTemplateSelectDevice.razor │ │ │ │ ├── ReportTenantSelection.razor │ │ │ │ ├── ReportedRules.razor │ │ │ │ ├── ReportedRulesForDiff.razor │ │ │ │ ├── Reports │ │ │ │ │ ├── ChangesReport.razor │ │ │ │ │ ├── ConnectionsReport.razor │ │ │ │ │ ├── RulesReport.razor │ │ │ │ │ ├── StatisticsReport.razor │ │ │ │ │ ├── VariancesReport.razor │ │ │ │ │ └── _Imports.razor │ │ │ │ ├── Schedule.razor │ │ │ │ └── _Imports.razor │ │ │ ├── Request │ │ │ │ ├── AssignObject.razor │ │ │ │ ├── CommentObject.razor │ │ │ │ ├── DeleteObject.razor │ │ │ │ ├── DisplayAccessElements.razor │ │ │ │ ├── DisplayApprovals.razor │ │ │ │ ├── DisplayImplTaskTable.razor │ │ │ │ ├── DisplayImplementationTask.razor │ │ │ │ ├── DisplayPathAnalysis.razor │ │ │ │ ├── DisplayReqTaskTable.razor │ │ │ │ ├── DisplayRequestTask.razor │ │ │ │ ├── DisplayRules.razor │ │ │ │ ├── DisplayTicket.razor │ │ │ │ ├── DisplayTicketTable.razor │ │ │ │ ├── ImplOptSelection.razor │ │ │ │ ├── PromoteObject.razor │ │ │ │ ├── RequestApprovals.razor │ │ │ │ ├── RequestImplementations.razor │ │ │ │ ├── RequestPlannings.razor │ │ │ │ ├── RequestReviews.razor │ │ │ │ ├── RequestTickets.razor │ │ │ │ ├── RequestTicketsOverview.razor │ │ │ │ └── _Imports.razor │ │ │ ├── Settings │ │ │ │ ├── EditExtStates.razor │ │ │ │ ├── ExtTicketTemplates.razor │ │ │ │ ├── RemoveUser.razor │ │ │ │ ├── SearchUser.razor │ │ │ │ ├── SelectFromLdap.razor │ │ │ │ ├── SettingsActions.razor │ │ │ │ ├── SettingsCredentials.razor │ │ │ │ ├── SettingsCustomTexts.razor │ │ │ │ ├── SettingsCustomizing.razor │ │ │ │ ├── SettingsDefaults.razor │ │ │ │ ├── SettingsEmail.razor │ │ │ │ ├── SettingsExternalWorkflow.razor │ │ │ │ ├── SettingsGateways.razor │ │ │ │ ├── SettingsGroups.razor │ │ │ │ ├── SettingsImport.razor │ │ │ │ ├── SettingsLanguage.razor │ │ │ │ ├── SettingsLdap.razor │ │ │ │ ├── SettingsMain.razor │ │ │ │ ├── SettingsManagements.razor │ │ │ │ ├── SettingsModelling.razor │ │ │ │ ├── SettingsModellingPers.razor │ │ │ │ ├── SettingsOwner.razor │ │ │ │ ├── SettingsPassword.razor │ │ │ │ ├── SettingsPasswordPolicy.razor │ │ │ │ ├── SettingsRecertificationGen.razor │ │ │ │ ├── SettingsRecertificationPers.razor │ │ │ │ ├── SettingsReport.razor │ │ │ │ ├── SettingsReportGeneral.razor │ │ │ │ ├── SettingsRoles.razor │ │ │ │ ├── SettingsStateMatrix.razor │ │ │ │ ├── SettingsStates.razor │ │ │ │ ├── SettingsTenants.razor │ │ │ │ ├── SettingsUser.razor │ │ │ │ ├── SettingsUsers.razor │ │ │ │ ├── VarianceOptionsSelection.razor │ │ │ │ └── _Imports.razor │ │ │ ├── Start.razor │ │ │ ├── _Host.cshtml │ │ │ └── _Imports.razor │ │ │ ├── Program.cs │ │ │ ├── Properties │ │ │ └── launchSettings.json │ │ │ ├── Services │ │ │ ├── CircuitHandlerService.cs │ │ │ ├── DomEventService.cs │ │ │ ├── FileUploadService.cs │ │ │ ├── JwtEventService.cs │ │ │ ├── KeyboardInputService.cs │ │ │ ├── ModellingAppHandler.cs │ │ │ ├── NetworkZoneService.cs │ │ │ ├── PasswordChanger.cs │ │ │ ├── PasswordPolicy.cs │ │ │ └── RoleAccess.cs │ │ │ ├── Shared │ │ │ ├── AnchorNavToRSB.razor │ │ │ ├── AppRoleTable.razor │ │ │ ├── AutoDiscovery.razor │ │ │ ├── Collapse.razor │ │ │ ├── Confirm.razor │ │ │ ├── ConfirmDelete.razor │ │ │ ├── ConnectionTable.razor │ │ │ ├── ConnectionTable.razor.css │ │ │ ├── ContentSwap.razor │ │ │ ├── Detail.razor │ │ │ ├── DeviceSelection.razor │ │ │ ├── DeviceSelectionTenants.razor │ │ │ ├── DraggableList.razor │ │ │ ├── Dropdown.razor │ │ │ ├── EditList.razor │ │ │ ├── EditList.razor.css │ │ │ ├── EmptyLayout.razor │ │ │ ├── ExpandableList.razor │ │ │ ├── ExpandableList2.razor │ │ │ ├── FileUpload.razor │ │ │ ├── HelpLink.razor │ │ │ ├── ImportDetails.razor │ │ │ ├── ImportRollback.razor │ │ │ ├── InProgress.razor │ │ │ ├── IpAddressInput.razor │ │ │ ├── IpSelector.razor │ │ │ ├── KeyboardInput.razor │ │ │ ├── MainLayout.razor │ │ │ ├── MonitoringLayout.razor │ │ │ ├── NavigationMenu.razor │ │ │ ├── ObjectGroup.razor │ │ │ ├── ObjectGroupCollection.razor │ │ │ ├── OrderByDropdown.razor │ │ │ ├── PageSizeComponent.razor │ │ │ ├── PageSizeComponent.razor.css │ │ │ ├── PopUp.razor │ │ │ ├── PopUp.razor.css │ │ │ ├── PortRangeInput.razor │ │ │ ├── ReportLayout.razor │ │ │ ├── ReportTabset.razor │ │ │ ├── RequestLayout.razor │ │ │ ├── RightSidebar.razor │ │ │ ├── RuleSelector.razor │ │ │ ├── SelectOwner.razor │ │ │ ├── ServiceSelector.razor │ │ │ ├── SettingsLayout.razor │ │ │ ├── Sidebar.razor │ │ │ ├── Tab.razor │ │ │ ├── TabSet.razor │ │ │ ├── TabSet.razor.css │ │ │ ├── Tooltip.razor │ │ │ ├── Tooltip.razor.css │ │ │ └── _Imports.razor │ │ │ ├── _Imports.razor │ │ │ ├── appsettings.Development.json │ │ │ ├── appsettings.json │ │ │ └── wwwroot │ │ │ ├── css │ │ │ ├── bootstrap │ │ │ │ └── bootstrap.min.css │ │ │ ├── open-iconic │ │ │ │ ├── FONT-LICENSE │ │ │ │ ├── ICON-LICENSE │ │ │ │ ├── README.md │ │ │ │ └── font │ │ │ │ │ ├── css │ │ │ │ │ └── open-iconic-bootstrap.min.css │ │ │ │ │ └── fonts │ │ │ │ │ ├── open-iconic.eot │ │ │ │ │ ├── open-iconic.otf │ │ │ │ │ ├── open-iconic.svg │ │ │ │ │ ├── open-iconic.ttf │ │ │ │ │ └── open-iconic.woff │ │ │ └── site.css │ │ │ ├── favicon.ico │ │ │ ├── images │ │ │ ├── FWO_logo.png │ │ │ └── FWO_logo_navbar.png │ │ │ └── js │ │ │ ├── clipboardCopy.js │ │ │ ├── downloadFile.js │ │ │ ├── globalKeyboardListener.js │ │ │ ├── scrollIntoView.js │ │ │ └── window.js │ ├── handlers │ │ └── main.yml │ ├── tasks │ │ ├── install_and_run_ui_service.yml │ │ ├── main.yml │ │ ├── run-upgrades.yml │ │ ├── ui_apache_install_and_setup.yml │ │ └── upgrade │ │ │ └── 5.1.17.yml │ └── templates │ │ ├── fworch-blazor-ui.service.j2 │ │ └── httpd.conf └── webhook │ ├── defaults │ └── main.yml │ ├── handlers │ └── main.yml │ ├── tasks │ └── main.yml │ └── templates │ ├── fworch-webhook-receiver.py.j2 │ └── fworch-webhook-receiver.service.j2 ├── scripts ├── acquire_lock.py ├── azure-create-vm.yml ├── customizing │ ├── customizing.py │ ├── modelling │ │ ├── convertNwObjDataExample.py │ │ ├── convertNwObjDataFromGit.py │ │ ├── convertNwObjDataFromGitPlain.py │ │ ├── customizingConfig.json │ │ ├── getOwnersFromCsvWithoutUsers.py │ │ ├── getOwnersFromMultipleSources.py │ │ └── readme.md │ ├── readme.md │ └── sampleCustomSettings.json ├── devsrv-manual-install.sh ├── generate_config_report.sh ├── generate_import_status_file.sh ├── get_pg_version.sh ├── import_checkpoint-cp-config-locally.sh ├── import_phion-mc-agent.sh ├── install-ansible-from-ppa.yml ├── install-ansible-from-venv.sh ├── install_toplevel.sh ├── json_pretty_print.py ├── preinstall-packages.yml ├── re-activate-ui.yml ├── release_lock.py ├── remove-2-year-old-devices.sh ├── remove-invisible-managements.sh └── show-fworch-listeners.yml └── site.yml /.editorconfig: -------------------------------------------------------------------------------- 1 | # top-level editorconfig file 2 | # should be the same file as the one for solution in roles directory 3 | 4 | root = true 5 | 6 | [*] 7 | indent_style = space 8 | indent_size = 4 9 | end_of_line = lf 10 | charset = utf-8 11 | trim_trailing_whitespace = false 12 | insert_final_newline = true 13 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/custom.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Custom issue template 3 | about: Describe this issue template's purpose here. 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | 11 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | 3 | updates: 4 | - package-ecosystem: "nuget" 5 | directory: "/roles/" 6 | target-branch: "develop" 7 | schedule: 8 | interval: "daily" 9 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .vs/ 2 | .idea/ 3 | .test_data/ 4 | roles/importer/venv/ 5 | ansible_venv/ 6 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "editor.formatOnPaste": false, 3 | "editor.formatOnSave": false, 4 | "[csharp]": { 5 | "editor.defaultFormatter": "ms-dotnettools.csharp" 6 | } 7 | } -------------------------------------------------------------------------------- /ansible.cfg: -------------------------------------------------------------------------------- 1 | # ansible.cfg 2 | [defaults] 3 | inventory = inventory 4 | # interpreter_python = ~/.local/bin/ansible 5 | # timeout = 60 6 | force_handlers = True 7 | result_format = yaml 8 | 9 | # gathering = smart 10 | # gather_subset = !hardware,!facter,!ohai 11 | 12 | ansible_conditional_bare_vars=false 13 | 14 | fact_caching_connection = /tmp/ansible_fact_cache 15 | fact_caching = jsonfile 16 | 17 | # expire the fact cache after 2 hours 18 | fact_caching_timeout = 7200 19 | pipelining = True 20 | -------------------------------------------------------------------------------- /azure/app.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CactuseSecurity/firewall-orchestrator/c40c905b136c2f06244dbbe506dba35b75fdc0f2/azure/app.zip -------------------------------------------------------------------------------- /design/UI/ui-filter-grammar.g4: -------------------------------------------------------------------------------- 1 | // Define a grammar called Hello 2 | grammar Hello; 3 | r : 'hello' ID ; // match keyword hello followed by an identifier 4 | ID : [a-z]+ ; // match lower-case identifiers 5 | WS : [ \t\r\n]+ -> skip ; // skip spaces, tabs, newlines 6 | -------------------------------------------------------------------------------- /design/UI/webassembly.md: -------------------------------------------------------------------------------- 1 | # Webassembly (WASM) as implemented in Blazor 2 | 3 | - [heise article](https://www.heise.de/news/Microsoft-Build-2020-Blazor-WebAssembly-ist-fertig-4725818.html) 4 | - [limitations of WASM](https://blazor-university.com/javascript-interop/) 5 | - [Comparison Javascript vs Webassembly](https://www.bizety.com/2018/11/14/webassembly-vs-javascript/) 6 | 7 | ## Pros 8 | 9 | - speed 10 | - "no javascript" 11 | - standardized 12 | - modern approach 13 | 14 | ## Cons 15 | 16 | - high implementation effort 17 | -------------------------------------------------------------------------------- /design/directory_structure.md: -------------------------------------------------------------------------------- 1 | 2 | # documentation 3 | 4 | - put docu into top-level documentation folder (structure already defined) 5 | 6 | # tests 7 | 8 | - put tests into roles/ 9 | 10 | /files/test folders to allow installation and initial testing 11 | -------------------------------------------------------------------------------- /documentation/auth/fworch-auth-process.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CactuseSecurity/firewall-orchestrator/c40c905b136c2f06244dbbe506dba35b75fdc0f2/documentation/auth/fworch-auth-process.png -------------------------------------------------------------------------------- /documentation/auth/ldap_structure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CactuseSecurity/firewall-orchestrator/c40c905b136c2f06244dbbe506dba35b75fdc0f2/documentation/auth/ldap_structure.png -------------------------------------------------------------------------------- /documentation/developer-docs/UI/README.MD: -------------------------------------------------------------------------------- 1 | # UI developer documentation 2 | 3 | This section is just a loose collection of UI related topics. 4 | -------------------------------------------------------------------------------- /documentation/developer-docs/UI/blazor/blazor-with-js.md: -------------------------------------------------------------------------------- 1 | # Blazor with JavaScript 2 | 3 | [Microsoft Docu](https://docs.microsoft.com/en-us/aspnet/core/blazor/call-javascript-from-dotnet?view=aspnetcore-3.1) 4 | 5 | Also see: [Issue](https://github.com/CactuseSecurity/firewall-orchestrator/issues/132) 6 | -------------------------------------------------------------------------------- /documentation/developer-docs/UI/blazor/howto-blazor.md: -------------------------------------------------------------------------------- 1 | # Blazor UI Howto 2 | 3 | ## minimize client size 4 | 5 | ```console 6 | cd app-dir 7 | rm -rf obj/Debug 8 | rm -rf bin/Debug 9 | ``` 10 | 11 | ## install visual studio code on ubuntu 12 | 13 | see 14 | -------------------------------------------------------------------------------- /documentation/developer-docs/UI/ui-filter-parser/Grammar Filter.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CactuseSecurity/firewall-orchestrator/c40c905b136c2f06244dbbe506dba35b75fdc0f2/documentation/developer-docs/UI/ui-filter-parser/Grammar Filter.pdf -------------------------------------------------------------------------------- /documentation/developer-docs/csharp/README.md: -------------------------------------------------------------------------------- 1 | # c# development 2 | 3 | - [Visual Studio (Code) Debugging](visual-studio/vscode-debugging.md) 4 | 5 | ![Namespace overview](fworch-csharp-namespaces.png) 6 | 7 | 8 | -------------------------------------------------------------------------------- /documentation/developer-docs/csharp/blazor/blazorTable/README.md: -------------------------------------------------------------------------------- 1 | - [Github Site](https://github.com/IvanJosipovic/BlazorTable) 2 | - [Feature Site](https://blazortable.netlify.app/) 3 | - adding a project to the solution 4 | 5 | tim@acantha22:~/dev/firewall-orchestrator/roles$ dotnet sln FWO.sln add lib/files/FWO.Encryption/FWO.Encryption.csproj 6 | Project `lib/files/FWO.Encryption/FWO.Encryption.csproj` added to the solution. 7 | tim@acantha22:~/dev/firewall-orchestrator/roles$ 8 | -------------------------------------------------------------------------------- /documentation/developer-docs/csharp/csharp-namespaces.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CactuseSecurity/firewall-orchestrator/c40c905b136c2f06244dbbe506dba35b75fdc0f2/documentation/developer-docs/csharp/csharp-namespaces.png -------------------------------------------------------------------------------- /documentation/developer-docs/importer/firewall-APIs/checkpoint/checkpoint-r8x-import-process.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CactuseSecurity/firewall-orchestrator/c40c905b136c2f06244dbbe506dba35b75fdc0f2/documentation/developer-docs/importer/firewall-APIs/checkpoint/checkpoint-r8x-import-process.png -------------------------------------------------------------------------------- /documentation/developer-docs/importer/firewall-APIs/checkpoint/importer-CP-R8x-Cert-Export.md: -------------------------------------------------------------------------------- 1 | # How to export certificates from Check Point R8x management server 2 | 3 | Necessary for importing into FW-Orch importer to get rid of cert warnings 4 | 5 | Source: https://sc1.checkpoint.com/documents/R81/WebAdminGuides/EN/CP_R81_CLI_ReferenceGuide/Topics-CLIG/MDSG/fwm-printcert.htm?tocpath=Multi-Domain%20Security%20Management%20Commands%7Cfwm%7C_____10 6 | 7 | 8 | Example: 9 | 10 | fwm printcert -ca internal_ca -x509 out.cert -p >cp.crt -------------------------------------------------------------------------------- /documentation/developer-docs/importer/firewall-APIs/illumio/0-API.md: -------------------------------------------------------------------------------- 1 | # API documentation 2 | 3 | see 4 | 5 | The $KEY and $TOKEN constants in the code examples represent authentication credentials (session and token, API key and token, or username and password as appropriate). 6 | 7 | This is confusing! 8 | 9 | Detailed doc: 10 | -------------------------------------------------------------------------------- /documentation/developer-docs/importer/firewall-APIs/illumio/2-pair-workloads.md: -------------------------------------------------------------------------------- 1 | # Pair workloads 2 | 3 | To use the API, you will need an API key. Which is generated from the PCE’s UI - User - My API keys - Create new key 4 | 5 | Username: api_1fbeb4416acd509bc 6 | Secret: ba9f6db768a875aedd6a6c6bba4fc86c023cd1710698079fb676fe9ffe297221 7 | 8 | - workload is a tool that uses the API: doc: 9 | -------------------------------------------------------------------------------- /documentation/developer-docs/installer/accelerate_install.md: -------------------------------------------------------------------------------- 1 | # How to make the install process run faster 2 | 3 | ## install packages on your master tst machine 4 | 5 | cd firewall-organizer; ansible-playbook bin/preinstall-packages.yml -K 6 | -------------------------------------------------------------------------------- /documentation/developer-docs/visual-studio/remote-development-vs-code.md: -------------------------------------------------------------------------------- 1 | # remote development using remote-ssh 2 | 3 | This enables us to develop, run and debug everything remotely on a single linux machine of our choice. 4 | 5 | See for instructions how to set this up. 6 | 7 | After setup we need to 8 | - clone our fork repo on the remote machine 9 | - install fworch 10 | - stop the services we want to debug (middleware, ui) 11 | - start the services remotely in vs (code) for debugging 12 | -------------------------------------------------------------------------------- /documentation/installer/postgresql_versions.md: -------------------------------------------------------------------------------- 1 | # Default Postgresql Versions per Operating System 2 | 3 | Status as of 2023-01-24 4 | 5 | - Ubuntu 18.04 10 6 | - Ubuntu 20.04 12 7 | - Ubuntu 22.04 14 8 | - Debian 10 11 9 | - Debian 11 13 10 | - Debian Testing 15 11 | -------------------------------------------------------------------------------- /etc/dummy_etc_folder_for_dotnet_debugging.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CactuseSecurity/firewall-orchestrator/c40c905b136c2f06244dbbe506dba35b75fdc0f2/etc/dummy_etc_folder_for_dotnet_debugging.txt -------------------------------------------------------------------------------- /etc/fworch.json: -------------------------------------------------------------------------------- 1 | { 2 | "fworch_home": "/usr/local/fworch", 3 | "dotnet_mode": "Release", 4 | "product_version": "0.0.1", 5 | 6 | "api_uri": "https://127.0.0.1:9443/api/v1/graphql/", 7 | "api_hasura_jwt_alg": "RS256", 8 | 9 | "middleware_native_uri": "http://127.0.0.1:8880/", 10 | "middleware_uri": "http://127.0.0.1:8888/", 11 | "middleware_hostname": "127.0.0.1", 12 | "middleware_server_port": "8888" 13 | } -------------------------------------------------------------------------------- /fwo.code-workspace: -------------------------------------------------------------------------------- 1 | { 2 | "folders": [ 3 | { 4 | "path": "." 5 | }, 6 | { 7 | "path": "roles" 8 | } 9 | ], 10 | "settings": {} 11 | } -------------------------------------------------------------------------------- /inventory/group_vars/cloud.yml: -------------------------------------------------------------------------------- 1 | ################## cloud ########################### 2 | 3 | cloud_vm_name: fworch-vm1 4 | cloud_admin_name: cadmin 5 | # cloud_admin_ssh_public_key: "" 6 | cloud_network: "10.5.0.0/16" 7 | cloud_subnet: "10.5.1.0/24" 8 | cloud_location: northcentral 9 | cloud_image_publisher: canonical 10 | cloud_image_sku: "20_04-lts" 11 | cloud_vm_size: "Standard_B2s" 12 | cloud_resource_group: "fworch_rg" 13 | -------------------------------------------------------------------------------- /inventory/group_vars/importers.yml: -------------------------------------------------------------------------------- 1 | importer_home: "{{ fworch_home }}/importer" 2 | -------------------------------------------------------------------------------- /inventory/group_vars/testservers.yml: -------------------------------------------------------------------------------- 1 | install_webhook: no 2 | # webhook_install_mode: reinstall 3 | webhook_install_mode: upgrade 4 | webhook_branch: develop 5 | -------------------------------------------------------------------------------- /roles/.editorconfig: -------------------------------------------------------------------------------- 1 | # roles EditorConfig file 2 | root = true 3 | 4 | [*] 5 | indent_style = space 6 | indent_size = 4 7 | end_of_line = lf 8 | charset = utf-8 9 | trim_trailing_whitespace = false 10 | insert_final_newline = false -------------------------------------------------------------------------------- /roles/common/files/men-at-work.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CactuseSecurity/firewall-orchestrator/c40c905b136c2f06244dbbe506dba35b75fdc0f2/roles/common/files/men-at-work.jpg -------------------------------------------------------------------------------- /roles/common/tasks/upgrade/5.1.17.yml: -------------------------------------------------------------------------------- 1 | - debug: 2 | msg: 3 | - "running dummy common upgrade script" 4 | -------------------------------------------------------------------------------- /roles/database/files/get_pg_version.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | ver=$(psql --version | cut -d " " -f 3) 3 | major_ver=$(echo "$ver" | cut -d "." -f 1) 4 | minor_ver=$(echo "$ver" | cut -d "." -f 2) 5 | # return only major version from pg 10 onwards 6 | if [ $((major_ver * 1)) -gt 9 ] 7 | then 8 | ver=$major_ver 9 | fi 10 | echo -n "$ver" 11 | -------------------------------------------------------------------------------- /roles/database/files/remove_all_containers.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ -e /usr/bin/docker ] 4 | then 5 | if [ "$(docker ps -a -q)" != "" ] 6 | then 7 | # TODO: find out why the following does not work on debian (using backtick notation for the time being): 8 | # docker stop "$(docker ps -a -q)" 9 | # docker rm "$(docker ps -a -q)" 10 | 11 | docker stop `docker ps -a -q` 12 | docker rm `docker ps -a -q` 13 | fi 14 | fi 15 | -------------------------------------------------------------------------------- /roles/database/files/sql/test/unit-test-cleanup.sql: -------------------------------------------------------------------------------- 1 | drop extension if exists pgtap; 2 | -- drop function if exists test_1_schema(); 3 | -- drop function if exists test_2_functions(); -------------------------------------------------------------------------------- /roles/database/files/upgrade/5.0.2.sql: -------------------------------------------------------------------------------- 1 | 2 | Alter table "import_control" add column if not exists "changes_found" Boolean NOT NULL Default FALSE; 3 | -------------------------------------------------------------------------------- /roles/database/files/upgrade/5.0.4.sql: -------------------------------------------------------------------------------- 1 | 2 | -- adding report owner (do not allow for sharing of generated reports yet) 3 | Alter table "report" add column "report_owner_id" Integer Not Null; 4 | 5 | DO $$ 6 | BEGIN 7 | IF NOT EXISTS(select constraint_name 8 | from information_schema.referential_constraints 9 | where constraint_name = 'report_report_owner_id_fkey') 10 | THEN 11 | Alter table "report" add foreign key ("report_owner_id") references "uiuser" ("uiuser_id") on update restrict on delete cascade; 12 | END IF; 13 | END $$; 14 | -------------------------------------------------------------------------------- /roles/database/files/upgrade/5.0.6.sql: -------------------------------------------------------------------------------- 1 | Alter table "ldap_connection" ADD COLUMN "tenant_id" INTEGER; 2 | -- add foreign key ldap_connection --> tenant 3 | DO $$ 4 | BEGIN 5 | IF NOT EXISTS(select constraint_name 6 | from information_schema.referential_constraints 7 | where constraint_name = 'ldap_connection_tenant_id_fkey') 8 | THEN 9 | Alter table "ldap_connection" add foreign key ("tenant_id") references "tenant" ("tenant_id") on update restrict on delete cascade; 10 | END IF; 11 | END $$; 12 | -------------------------------------------------------------------------------- /roles/database/files/upgrade/5.0.7.sql: -------------------------------------------------------------------------------- 1 | 2 | Alter table "report_schedule" ADD COLUMN IF NOT EXISTS "report_schedule_name" Varchar; 3 | 4 | Alter table "report_template" DROP COLUMN IF EXISTS "report_typ_id"; 5 | 6 | DROP FUNCTION IF EXISTS get_report_typ_list(REFCURSOR); 7 | 8 | Alter table "report_template" drop CONSTRAINT if exists report_template_report_typ_id_fkey; 9 | 10 | drop index if exists "IX_Relationship201"; -- on "report_template" ("report_typ_id"); 11 | 12 | DROP table if exists "stm_report_typ"; 13 | -------------------------------------------------------------------------------- /roles/database/files/upgrade/5.0.8.sql: -------------------------------------------------------------------------------- 1 | Alter table "report" ADD COLUMN IF NOT EXISTS "report_filetype" varchar NOT NULL; 2 | Alter table "report" ADD COLUMN IF NOT EXISTS "report_name" varchar NOT NULL; 3 | -------------------------------------------------------------------------------- /roles/database/files/upgrade/5.0.9.sql: -------------------------------------------------------------------------------- 1 | alter table uiuser drop constraint if exists uiuser_uiuser_username_key; 2 | -------------------------------------------------------------------------------- /roles/database/files/upgrade/5.1.02.sql: -------------------------------------------------------------------------------- 1 | 2 | alter table "uiuser" alter column uiuser_language drop Default; 3 | -------------------------------------------------------------------------------- /roles/database/files/upgrade/5.1.05.sql: -------------------------------------------------------------------------------- 1 | INSERT INTO "report_template" ("report_filter","report_template_name","report_template_comment","report_template_owner") 2 | VALUES ('type=rules and time=now and (src=any or dst=any or svc=any or src=all or dst=all or svc=all) and not(action=drop or action=reject or action=deny) ', 3 | 'Compliance: Rules with ANY','Show all rules that contain any as source, destination or service', NULL); 4 | -------------------------------------------------------------------------------- /roles/database/files/upgrade/5.1.06.sql: -------------------------------------------------------------------------------- 1 | 2 | ALTER TABLE "report_schedule_format" DROP CONSTRAINT IF EXISTS report_schedule_format_report_schedule_id_fkey; 3 | 4 | Alter table if exists "report_schedule_format" 5 | add constraint report_schedule_format_report_schedule_id_fkey foreign key ("report_schedule_id") references "report_schedule" ("report_schedule_id") 6 | on update restrict on delete cascade; 7 | -------------------------------------------------------------------------------- /roles/database/files/upgrade/5.1.07.sql: -------------------------------------------------------------------------------- 1 | Alter table "report" DROP COLUMN IF EXISTS "report_filetype"; 2 | 3 | Alter table "report_schedule" ADD COLUMN IF NOT EXISTS "report_schedule_repetitions" Integer; 4 | -- default = NULL = infinite 5 | -- NULL --> infinite, 1 = just once, 2, .... 6 | -------------------------------------------------------------------------------- /roles/database/files/upgrade/5.1.08.sql: -------------------------------------------------------------------------------- 1 | Alter table "report" DROP COLUMN IF EXISTS "start_import_id"; 2 | Alter table "report" DROP COLUMN IF EXISTS "stop_import_id"; 3 | Alter table "report" DROP COLUMN IF EXISTS "report_generation_time"; 4 | 5 | -- foreign keys get dropped cascaded 6 | -- ALTER TABLE "report" DROP CONSTRAINT IF EXISTS report_start_import_id_fkey; 7 | -- ALTER TABLE "report" DROP CONSTRAINT IF EXISTS report_stop_import_id_fkey; 8 | -------------------------------------------------------------------------------- /roles/database/files/upgrade/5.1.09.sql: -------------------------------------------------------------------------------- 1 | 2 | -- default report templates belong to user 0 3 | UPDATE "report_template" SET "report_template_owner" = 0; -- defining all templates to be default templates 4 | -- make schedule owner mandatory 5 | Alter table "report_schedule" ALTER COLUMN "report_schedule_owner" SET NOT NULL; 6 | 7 | Alter table "report" ALTER COLUMN "report_pdf" TYPE TEXT; 8 | -------------------------------------------------------------------------------- /roles/database/files/upgrade/5.1.10.sql: -------------------------------------------------------------------------------- 1 | 2 | Alter table "management" ADD COLUMN IF NOT EXISTS "debug_level" Integer; 3 | -------------------------------------------------------------------------------- /roles/database/files/upgrade/5.1.13.sql: -------------------------------------------------------------------------------- 1 | 2 | Alter table "ldap_connection" ADD COLUMN IF NOT EXISTS "ldap_searchpath_for_groups" Varchar; 3 | Alter table "ldap_connection" ADD COLUMN IF NOT EXISTS "ldap_type" Integer NOT NULL Default 0; 4 | Alter table "ldap_connection" ADD COLUMN IF NOT EXISTS "ldap_pattern_length" Integer NOT NULL Default 0; 5 | -------------------------------------------------------------------------------- /roles/database/files/upgrade/5.1.15.sql: -------------------------------------------------------------------------------- 1 | 2 | Alter table "language" ADD COLUMN IF NOT EXISTS "culture_info" Varchar; 3 | 4 | UPDATE language SET culture_info = 'de-DE' WHERE name='German'; 5 | UPDATE language SET culture_info = 'en-US' WHERE name='English'; 6 | 7 | Alter table "language" ALTER COLUMN "culture_info" SET NOT NULL; 8 | -------------------------------------------------------------------------------- /roles/database/files/upgrade/5.2.1.sql: -------------------------------------------------------------------------------- 1 | 2 | DROP table IF EXISTS "text_msg"; 3 | DROP function IF EXISTS get_text; 4 | -------------------------------------------------------------------------------- /roles/database/files/upgrade/5.2.3.sql: -------------------------------------------------------------------------------- 1 | 2 | -- we need to modify the altkey constraint for rule from mgm_id to dev_id 3 | -- reason: we can now have the same (global) rule (uid) more than once in different rulesets of the same management 4 | 5 | ALTER TABLE public.rule drop CONSTRAINT rule_altkey; 6 | Alter Table "rule" add Constraint "rule_altkey" UNIQUE ("dev_id","rule_uid","rule_create"); 7 | -------------------------------------------------------------------------------- /roles/database/files/upgrade/5.2.4.sql: -------------------------------------------------------------------------------- 1 | alter table management alter column ssh_public_key drop not null; 2 | alter table management alter column ssh_public_key drop default; -------------------------------------------------------------------------------- /roles/database/files/upgrade/5.2.5.sql: -------------------------------------------------------------------------------- 1 | 2 | Alter table "rule_metadata" ALTER COLUMN "rule_uid" SET NOT NULL; 3 | 4 | Alter table "rule_metadata" ADD COLUMN IF NOT EXISTS "rule_last_certifier_dn" Varchar; 5 | 6 | DO $$ 7 | BEGIN 8 | IF EXISTS(SELECT * 9 | FROM information_schema.columns 10 | WHERE table_name='rule_metadata' and column_name='rule_group_owner') 11 | THEN 12 | ALTER TABLE "rule_metadata" RENAME COLUMN "rule_group_owner" TO "rule_owner_dn"; 13 | END IF; 14 | END; 15 | $$ LANGUAGE plpgsql; 16 | -------------------------------------------------------------------------------- /roles/database/files/upgrade/5.2.7.sql: -------------------------------------------------------------------------------- 1 | Alter table "rule_metadata" ADD COLUMN IF NOT EXISTS "rule_decert_date" Timestamp; 2 | -------------------------------------------------------------------------------- /roles/database/files/upgrade/5.2.8.sql: -------------------------------------------------------------------------------- 1 | Alter table "rule_metadata" ADD COLUMN IF NOT EXISTS "rule_recertification_comment" Varchar; 2 | -------------------------------------------------------------------------------- /roles/database/files/upgrade/5.4.2.sql: -------------------------------------------------------------------------------- 1 | 2 | UPDATE stm_dev_typ SET dev_typ_version = '5ff' WHERE dev_typ_name = 'FortiManager'; 3 | -------------------------------------------------------------------------------- /roles/database/files/upgrade/5.5.2.sql: -------------------------------------------------------------------------------- 1 | INSERT INTO "report_template" ("report_filter","report_template_name","report_template_comment","report_template_owner") 2 | VALUES ('type=natrules and time=now ','Current NAT Rules','T0105', 0) ON CONFLICT DO NOTHING; 3 | -------------------------------------------------------------------------------- /roles/database/files/upgrade/5.5.3.sql: -------------------------------------------------------------------------------- 1 | Alter table "ldap_connection" ADD COLUMN IF NOT EXISTS "ldap_global_tenant_name" Varchar; 2 | -------------------------------------------------------------------------------- /roles/database/files/upgrade/5.6.2.sql: -------------------------------------------------------------------------------- 1 | insert into stm_dev_typ (dev_typ_id,dev_typ_name,dev_typ_version,dev_typ_manufacturer,dev_typ_predef_svc) VALUES (4,'FortiGateStandalone','5ff','Fortinet','') ON Conflict Do Nothing; 2 | 3 | update management set dev_typ_id=4 where mgm_name='fortigate_demo'; 4 | -------------------------------------------------------------------------------- /roles/database/files/upgrade/6.2.2.sql: -------------------------------------------------------------------------------- 1 | alter table import_rule add column if not exists "last_hit" Timestamp; 2 | -------------------------------------------------------------------------------- /roles/database/files/upgrade/6.5.1.sql: -------------------------------------------------------------------------------- 1 | insert into config (config_key, config_value, config_user) VALUES ('unusedTolerance', '400', 0) ON CONFLICT DO NOTHING; 2 | insert into config (config_key, config_value, config_user) VALUES ('creationTolerance', '90', 0) ON CONFLICT DO NOTHING; 3 | -------------------------------------------------------------------------------- /roles/database/files/upgrade/7.1.2.sql: -------------------------------------------------------------------------------- 1 | insert into stm_action (action_id,action_name) VALUES (29,'inform') ON CONFLICT DO NOTHING; -- cp 2 | -------------------------------------------------------------------------------- /roles/database/files/upgrade/7.2.1.sql: -------------------------------------------------------------------------------- 1 | 2 | insert into config (config_key, config_value, config_user) VALUES ('ruleOwnershipMode', 'mixed', 0) ON CONFLICT DO NOTHING; 3 | -------------------------------------------------------------------------------- /roles/database/files/upgrade/7.2.5.sql: -------------------------------------------------------------------------------- 1 | insert into stm_obj_typ (obj_typ_id,obj_typ_name) VALUES (19,'external-gateway') ON CONFLICT DO NOTHING; 2 | -------------------------------------------------------------------------------- /roles/database/files/upgrade/7.3.4.sql: -------------------------------------------------------------------------------- 1 | alter table import_control add column if not exists notification_done Boolean NOT NULL Default FALSE; 2 | -------------------------------------------------------------------------------- /roles/database/files/upgrade/7.3.6.sql: -------------------------------------------------------------------------------- 1 | alter table owner add column if not exists common_service_possible boolean default false; 2 | -------------------------------------------------------------------------------- /roles/database/files/upgrade/8.0.2.sql: -------------------------------------------------------------------------------- 1 | insert into stm_dev_typ (dev_typ_id,dev_typ_name,dev_typ_version,dev_typ_manufacturer,dev_typ_predef_svc,dev_typ_is_multi_mgmt,dev_typ_is_mgmt,is_pure_routing_device) 2 | VALUES (26,'NSX','4ff','VMWare','',false,true,false) ON CONFLICT DO NOTHING; 3 | insert into stm_dev_typ (dev_typ_id,dev_typ_name,dev_typ_version,dev_typ_manufacturer,dev_typ_predef_svc,dev_typ_is_multi_mgmt,dev_typ_is_mgmt,is_pure_routing_device) 4 | VALUES (27,'NSX DFW Gateway','4ff','VMWare','',false,false,false) ON CONFLICT DO NOTHING; 5 | -------------------------------------------------------------------------------- /roles/database/files/upgrade/8.2.3.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE modelling.connection DROP CONSTRAINT IF EXISTS modelling_connection_used_interface_foreign_key; 2 | ALTER TABLE modelling.connection ADD CONSTRAINT modelling_connection_used_interface_foreign_key FOREIGN KEY (used_interface_id) REFERENCES modelling.connection(id) ON UPDATE RESTRICT; 3 | 4 | alter table modelling.connection add column if not exists conn_prop Varchar; 5 | -------------------------------------------------------------------------------- /roles/database/files/upgrade/8.3.2.sql: -------------------------------------------------------------------------------- 1 | insert into config (config_key, config_value, config_user) VALUES ('welcomeMessage', '', 0) ON CONFLICT DO NOTHING; -------------------------------------------------------------------------------- /roles/database/files/upgrade/8.4.3.sql: -------------------------------------------------------------------------------- 1 | 2 | alter table modelling.connection add column if not exists extra_params Varchar; 3 | 4 | insert into config (config_key, config_value, config_user) VALUES ('modExtraConfigs', '[]', 0) ON CONFLICT DO NOTHING; 5 | insert into config (config_key, config_value, config_user) VALUES ('modRolloutErrorText', 'Error during external request', 0) ON CONFLICT DO NOTHING; 6 | 7 | ALTER TYPE action_enum ADD VALUE IF NOT EXISTS 'addAfterCreation'; 8 | 9 | delete from config where config_key='[]'; 10 | -------------------------------------------------------------------------------- /roles/database/files/upgrade/8.5.4.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE ext_request ADD COLUMN IF NOT EXISTS wait_cycles int DEFAULT 0; 2 | 3 | insert into config (config_key, config_value, config_user) VALUES ('externalRequestWaitCycles', '0', 0) ON CONFLICT DO NOTHING; 4 | -------------------------------------------------------------------------------- /roles/docker/handlers/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: restart docker 3 | systemd: 4 | name: docker 5 | daemon_reload: true 6 | state: restarted 7 | become: true 8 | listen: "docker restart" 9 | -------------------------------------------------------------------------------- /roles/docker/templates/unused_docker-config.json.j2: -------------------------------------------------------------------------------- 1 | { 2 | "proxies": 3 | { 4 | "default": 5 | { 6 | "httpProxy": "{{ http_proxy }}", 7 | "httpsProxy": "{{ https_proxy }}", 8 | "noProxy": "{{ proxy_exceptions }}" 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /roles/docker/templates/unused_docker_config.j2: -------------------------------------------------------------------------------- 1 | { 2 | "proxies": 3 | { 4 | "default": 5 | { 6 | "httpProxy": "{{ http_proxy }}", 7 | "httpsProxy": "{{ https_proxy }}", 8 | "noProxy": "{{ proxy_exceptions }}" 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /roles/finalize/tasks/upgrade/5.6.5.yml: -------------------------------------------------------------------------------- 1 | 2 | - name: remove duplicate (old) logrotate .conf file 3 | file: 4 | state: absent 5 | name: "/etc/logrotate.d/{{ product_name }}.conf" 6 | become: true 7 | -------------------------------------------------------------------------------- /roles/global.json: -------------------------------------------------------------------------------- 1 | { 2 | "sdk": { 3 | "version": "8.0.*" 4 | } 5 | } -------------------------------------------------------------------------------- /roles/importer/files/importer/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CactuseSecurity/firewall-orchestrator/c40c905b136c2f06244dbbe506dba35b75fdc0f2/roles/importer/files/importer/__init__.py -------------------------------------------------------------------------------- /roles/importer/files/importer/azure2022ff/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CactuseSecurity/firewall-orchestrator/c40c905b136c2f06244dbbe506dba35b75fdc0f2/roles/importer/files/importer/azure2022ff/__init__.py -------------------------------------------------------------------------------- /roles/importer/files/importer/azure2022ff/azure_base.py: -------------------------------------------------------------------------------- 1 | azure_api_version_str = '?api-version=2022-07-01' 2 | -------------------------------------------------------------------------------- /roles/importer/files/importer/checkpointR8x/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CactuseSecurity/firewall-orchestrator/c40c905b136c2f06244dbbe506dba35b75fdc0f2/roles/importer/files/importer/checkpointR8x/__init__.py -------------------------------------------------------------------------------- /roles/importer/files/importer/ciscofirepowerdomain7ff/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CactuseSecurity/firewall-orchestrator/c40c905b136c2f06244dbbe506dba35b75fdc0f2/roles/importer/files/importer/ciscofirepowerdomain7ff/__init__.py -------------------------------------------------------------------------------- /roles/importer/files/importer/dummyroutermanagement1/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CactuseSecurity/firewall-orchestrator/c40c905b136c2f06244dbbe506dba35b75fdc0f2/roles/importer/files/importer/dummyroutermanagement1/__init__.py -------------------------------------------------------------------------------- /roles/importer/files/importer/fortiadom5ff/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CactuseSecurity/firewall-orchestrator/c40c905b136c2f06244dbbe506dba35b75fdc0f2/roles/importer/files/importer/fortiadom5ff/__init__.py -------------------------------------------------------------------------------- /roles/importer/files/importer/fortiosmanagementREST/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CactuseSecurity/firewall-orchestrator/c40c905b136c2f06244dbbe506dba35b75fdc0f2/roles/importer/files/importer/fortiosmanagementREST/__init__.py -------------------------------------------------------------------------------- /roles/importer/files/importer/fwo_globals.py: -------------------------------------------------------------------------------- 1 | from urllib.parse import urlparse 2 | import socket 3 | 4 | debug_level=0 5 | 6 | 7 | def setGlobalValues ( 8 | verify_certs_in=None, 9 | suppress_cert_warnings_in=None, 10 | debug_level_in = 0, 11 | ): 12 | global verify_certs 13 | global suppress_cert_warnings 14 | global debug_level 15 | verify_certs = verify_certs_in 16 | suppress_cert_warnings = suppress_cert_warnings_in 17 | debug_level = int(debug_level_in) 18 | -------------------------------------------------------------------------------- /roles/importer/files/importer/fworch-importer-srv-helper: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | IMPORTER_SINGLE=fworch-importer-single.pl 4 | RES=`pidof -x $IMPORTER_SINGLE >/dev/null;echo $?` 5 | if [ $RES -eq 0 ]; then 6 | while [ $RES -eq 0 ]; do 7 | sleep 5 8 | RES=`pidof -x $IMPORTER_SINGLE >/dev/null;echo $?` 9 | done 10 | fi 11 | -------------------------------------------------------------------------------- /roles/importer/files/importer/import-api-stop-helper: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | IMPORTER_SINGLE=import-mgm.py 4 | RES=`pidof -x $IMPORTER_SINGLE >/dev/null;echo $?` 5 | if [ $RES -eq 0 ]; then 6 | while [ $RES -eq 0 ]; do 7 | sleep 5 8 | RES=`pidof -x $IMPORTER_SINGLE >/dev/null;echo $?` 9 | done 10 | fi 11 | -------------------------------------------------------------------------------- /roles/importer/files/importer/import-stop-helper: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | IMPORTER_SINGLE=fworch-importer-single.pl 4 | RES=`pidof -x $IMPORTER_SINGLE >/dev/null;echo $?` 5 | if [ $RES -eq 0 ]; then 6 | while [ $RES -eq 0 ]; do 7 | sleep 5 8 | RES=`pidof -x $IMPORTER_SINGLE >/dev/null;echo $?` 9 | done 10 | fi 11 | -------------------------------------------------------------------------------- /roles/importer/files/importer/nsx4ff/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CactuseSecurity/firewall-orchestrator/c40c905b136c2f06244dbbe506dba35b75fdc0f2/roles/importer/files/importer/nsx4ff/__init__.py -------------------------------------------------------------------------------- /roles/importer/files/importer/nsx4ff/nsx_base.py: -------------------------------------------------------------------------------- 1 | 2 | api_version_str="9.1" 3 | -------------------------------------------------------------------------------- /roles/importer/files/importer/nsx4ff/nsx_zone.py: -------------------------------------------------------------------------------- 1 | from asyncio.log import logger 2 | from fwo_log import getFwoLogger 3 | from fwo_const import list_delimiter 4 | 5 | 6 | def normalize_zones(full_config, config2import, import_id): 7 | zones = [] 8 | for zone_orig in full_config["/Network/Zones"]: 9 | zones.append({ 10 | "zone_name": zone_orig["@name"], 11 | "zone_uid": zone_orig["@name"], 12 | "control_id": import_id 13 | }) 14 | 15 | config2import['zone_objects'] = zones 16 | -------------------------------------------------------------------------------- /roles/importer/files/importer/paloaltomanagement2023ff/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CactuseSecurity/firewall-orchestrator/c40c905b136c2f06244dbbe506dba35b75fdc0f2/roles/importer/files/importer/paloaltomanagement2023ff/__init__.py -------------------------------------------------------------------------------- /roles/importer/files/importer/paloaltomanagement2023ff/palo_base.py: -------------------------------------------------------------------------------- 1 | 2 | api_version_str="9.1" 3 | -------------------------------------------------------------------------------- /roles/importer/tasks/fetch-importer-pwd.yml: -------------------------------------------------------------------------------- 1 | 2 | - name: write importer_password from install host to secrets directory 3 | copy: 4 | src: "{{ importer_password_file_on_installer }}" 5 | dest: "{{ importer_password_file }}" 6 | mode: '0600' 7 | owner: "{{ fworch_user }}" 8 | group: "{{ fworch_group }}" 9 | become: true 10 | -------------------------------------------------------------------------------- /roles/importer/tasks/upgrade/5.1.17.yml: -------------------------------------------------------------------------------- 1 | - debug: 2 | msg: 3 | - "running dummy importer upgrade script" 4 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/allObjects/deleteOldObjectsCascading.graphql: -------------------------------------------------------------------------------- 1 | mutation delete_old_objects ($retentionInMonths: Int!) { 2 | 3 | 4 | delete_ldap_connection_by_pk ( 5 | ldap_connection_id: $id 6 | ) { 7 | deletedId: ldap_connection_id 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/auth/addDeviceToTenant.graphql: -------------------------------------------------------------------------------- 1 | mutation addDeviceToTenant( 2 | $tenantId: Int! 3 | $deviceId: Int! 4 | ) { 5 | insert_tenant_to_device( 6 | objects: { 7 | tenant_id: $tenantId 8 | device_id: $deviceId 9 | } 10 | ) { 11 | returning { 12 | insertedId: device_id 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/auth/addTenant.graphql: -------------------------------------------------------------------------------- 1 | mutation addTenant( 2 | $name: String! 3 | $project: String 4 | $comment: String 5 | $viewAllDevices: Boolean 6 | $create: timestamp 7 | ) { 8 | insert_tenant( 9 | objects: { 10 | tenant_name: $name 11 | tenant_projekt: $project 12 | tenant_comment: $comment 13 | tenant_can_view_all_devices: $viewAllDevices 14 | tenant_create: $create 15 | } 16 | ) { 17 | returning { 18 | newId: tenant_id 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/auth/addTenantNetwork.graphql: -------------------------------------------------------------------------------- 1 | mutation addTenantNetwork( 2 | $tenantId: Int! 3 | $ip: cidr 4 | $ipEnd: cidr 5 | $name: String 6 | $comment: String 7 | ) { 8 | insert_tenant_network(objects: { 9 | tenant_id: $tenantId 10 | tenant_net_ip: $ip 11 | tenant_net_ip_end: $ipEnd 12 | tenant_net_name: $name 13 | tenant_net_comment: $comment 14 | }) { 15 | returning { 16 | newIdLong: tenant_net_id 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/auth/addTenantToGateway.graphql: -------------------------------------------------------------------------------- 1 | mutation addTenantToGateway($tenantId: Int!, $gwId: Int!, $shared: Boolean) { 2 | insert_tenant_to_device(objects: {device_id: $gwId, shared: $shared, tenant_id: $tenantId}) 3 | { 4 | affected_rows 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/auth/addTenantToManagement.graphql: -------------------------------------------------------------------------------- 1 | 2 | mutation addTenantToManagement($tenantId: Int!, $mgmId: Int!, $shared: Boolean) { 3 | insert_tenant_to_management(objects: {management_id: $mgmId, shared: $shared, tenant_id: $tenantId}) 4 | { 5 | affected_rows 6 | } 7 | } -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/auth/deleteAllGatewaysOfTenant.graphql: -------------------------------------------------------------------------------- 1 | mutation deleteAllGatewaysOfTenant($tenantId: Int!) { 2 | delete_tenant_to_device(where: {tenant_id:{_eq:$tenantId}}) 3 | { 4 | affected_rows 5 | } 6 | } 7 | 8 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/auth/deleteAllManagementsOfTenant.graphql: -------------------------------------------------------------------------------- 1 | 2 | mutation deleteAllManagementsOfTenant($tenantId: Int!) { 3 | delete_tenant_to_management(where: {tenant_id:{_eq:$tenantId}}) 4 | { 5 | affected_rows 6 | } 7 | } -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/auth/deleteLdapConnection.graphql: -------------------------------------------------------------------------------- 1 | mutation delete_ldap_connection_by_pk ($id: bigint!) { 2 | delete_ldap_connection_by_pk ( 3 | ldap_connection_id: $id 4 | ) { 5 | deletedId: ldap_connection_id 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/auth/deleteTenant.graphql: -------------------------------------------------------------------------------- 1 | mutation delete_tenant_by_pk ($id: Int!) { 2 | delete_tenant_by_pk ( 3 | tenant_id: $id 4 | ) { 5 | deletedId: tenant_id 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/auth/deleteTenantNetwork.graphql: -------------------------------------------------------------------------------- 1 | mutation deleteTenantNetwork( 2 | $tenantId: Int! 3 | $tenNetId: bigint! 4 | ) { 5 | delete_tenant_network(where: {tenant_id: {_eq: $tenantId}, tenant_net_id: {_eq: $tenNetId}}) { 6 | affected_rows 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/auth/deleteUser.graphql: -------------------------------------------------------------------------------- 1 | mutation delete_user_by_pk ($id: Int!) { 2 | delete_uiuser_by_pk ( 3 | uiuser_id: $id 4 | ) { 5 | deletedId: uiuser_id 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/auth/getTenantId.graphql: -------------------------------------------------------------------------------- 1 | query getTenantId($tenant_name: String!) { 2 | tenant(where: { tenant_name: { _eq: $tenant_name } }) { 3 | tenant_id 4 | } 5 | } -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/auth/getTenantNetworks.graphql: -------------------------------------------------------------------------------- 1 | 2 | query getTenantNetworks ($tenantId: Int!) { 3 | tenant_network (where: {tenant_id: {_eq: $tenantId}} order_by: { tenant_net_id: asc }){ 4 | id: tenant_net_id 5 | ip: tenant_net_ip 6 | ip_end: tenant_net_ip_end 7 | name: tenant_net_name 8 | comment: tenant_net_comment 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/auth/getTenantVisibleDeviceIds.graphql: -------------------------------------------------------------------------------- 1 | query getVisibleDeviceIdsPerTenant($tenantId: Int!) { 2 | visibleDevices: get_visible_devices_per_tenant(args: {arg_1: $tenantId}) { id } } -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/auth/getTenantVisibleManagementIds.graphql: -------------------------------------------------------------------------------- 1 | query getVisibleManagementIdsPerTenant($tenantId: Int!) { 2 | visibleManagements: get_visible_managements_per_tenant(args: {arg_1: $tenantId}) { id } } -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/auth/getUserByDbId.graphql: -------------------------------------------------------------------------------- 1 | query getUserByDbId($userId: Int!) { 2 | uiuser (where: {uiuser_id: {_eq: $userId}}) { 3 | uiuser_id 4 | uuid 5 | uiuser_username 6 | uiuser_language 7 | uiuser_password_must_be_changed 8 | uiuser_email 9 | uiuser_first_name 10 | uiuser_last_name 11 | uiuser_last_login 12 | uiuser_last_password_change 13 | } 14 | } -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/auth/getUserByDn.graphql: -------------------------------------------------------------------------------- 1 | query getUserByDn($dn: String!) { 2 | uiuser(where: {uuid: {_eq: $dn } }) { 3 | uiuser_id 4 | uuid 5 | uiuser_username 6 | uiuser_email 7 | uiuser_first_name 8 | uiuser_last_name 9 | uiuser_language 10 | uiuser_password_must_be_changed 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/auth/getUserEmails.graphql: -------------------------------------------------------------------------------- 1 | query getUserEmails ($uuid: String){ 2 | uiuser(where:{uuid:{_eq:$uuid}}) { 3 | uiuser_id 4 | uuid 5 | uiuser_username 6 | uiuser_email 7 | uiuser_first_name 8 | uiuser_last_name 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/auth/getVisibleManagementIdsPerTenant.graphql: -------------------------------------------------------------------------------- 1 | query getVisibleManagementIdsPerTenant($tenantId: Int!) { 2 | visibleManagements: get_visible_managements_per_tenant(args: {arg_1: $tenantId}) { id } } -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/auth/updateTenant.graphql: -------------------------------------------------------------------------------- 1 | mutation updateTenant( 2 | $id: Int! 3 | $project: String 4 | $comment: String 5 | $viewAllDevices: Boolean 6 | ) { 7 | update_tenant_by_pk( 8 | pk_columns: { tenant_id: $id } 9 | _set: { 10 | tenant_projekt: $project 11 | tenant_comment: $comment 12 | tenant_can_view_all_devices: $viewAllDevices 13 | } 14 | ) { 15 | updatedId: tenant_id 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/auth/updateUserEmail.graphql: -------------------------------------------------------------------------------- 1 | mutation updateUserEmail( 2 | $id: Int! 3 | $email: String 4 | ) { 5 | update_uiuser_by_pk( 6 | pk_columns: { uiuser_id: $id } 7 | _set: { 8 | uiuser_email: $email 9 | } 10 | ) { 11 | updatedId: uiuser_id 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/auth/updateUserLanguage.graphql: -------------------------------------------------------------------------------- 1 | mutation updateUserLanguage( 2 | $id: Int! 3 | $language: String! 4 | ) { 5 | update_uiuser_by_pk( 6 | pk_columns: { uiuser_id: $id } 7 | _set: { 8 | uiuser_language: $language 9 | } 10 | ) { 11 | updatedId: uiuser_id 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/auth/updateUserLastLogin.graphql: -------------------------------------------------------------------------------- 1 | mutation updateUserLastLogin( 2 | $id: Int! 3 | $loginTime: timestamptz! 4 | ) { 5 | update_uiuser_by_pk( 6 | pk_columns: { uiuser_id: $id } 7 | _set: { 8 | uiuser_last_login: $loginTime 9 | } 10 | ) { 11 | PasswordMustBeChanged: uiuser_password_must_be_changed 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/auth/updateUserPasswordChange.graphql: -------------------------------------------------------------------------------- 1 | mutation updateUserPasswordChange( 2 | $dn: String! 3 | $passwordMustBeChanged: Boolean 4 | $changeTime: timestamptz! 5 | ) { 6 | update_uiuser(_set: { 7 | uiuser_password_must_be_changed: $passwordMustBeChanged 8 | uiuser_last_password_change: $changeTime 9 | }, where: {uuid: {_eq: $dn}}) { 10 | returning { 11 | uiuser_id 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/compliance/deleteNetworkZone.graphql: -------------------------------------------------------------------------------- 1 | mutation delete_compliance_network_zone ($id: bigint!) { 2 | delete_compliance_network_zone_by_pk ( 3 | id: $id 4 | ) { 5 | id 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/config/addConfigItem.graphql: -------------------------------------------------------------------------------- 1 | mutation addConfigItem( 2 | $key: String! 3 | $value: String! 4 | $user: Int! 5 | ) { 6 | insert_config( 7 | objects: { 8 | config_key: $key 9 | config_value: $value 10 | config_user: $user 11 | } 12 | ) { 13 | returning { 14 | newId: config_key 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/config/deleteCustomText.graphql: -------------------------------------------------------------------------------- 1 | mutation delete_customtxt_by_pk ($id: String!, $lang: String!) { 2 | delete_customtxt_by_pk ( 3 | id: $id 4 | language: $lang 5 | ) { 6 | deletedId: id 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/config/getConfigItemByKey.graphql: -------------------------------------------------------------------------------- 1 | query getConfigItemByKey($key: String!) { 2 | config(where: {config_key: {_eq: $key}, config_user: {_eq: 0}}) { 3 | config_value 4 | } 5 | } -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/config/getConfigItemsByUser.graphql: -------------------------------------------------------------------------------- 1 | query getConfigItemsByUser($user: Int) { 2 | config(where: {config_user: {_eq: $user}}) { 3 | config_key 4 | config_value 5 | } 6 | } -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/config/getCustomTextsPerLanguage.graphql: -------------------------------------------------------------------------------- 1 | 2 | query getCustomTextsPerLanguage($language: String!) { 3 | customtxt(where: {language: {_eq: $language}}) { 4 | id 5 | language 6 | txt 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/config/getLanguages.graphql: -------------------------------------------------------------------------------- 1 | query getLanguages { 2 | language { 3 | name 4 | culture_info 5 | } 6 | } -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/config/getTexts.graphql: -------------------------------------------------------------------------------- 1 | 2 | query getAllTexts { 3 | txt { 4 | id 5 | language 6 | txt 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/config/getTextsPerLanguage.graphql: -------------------------------------------------------------------------------- 1 | 2 | query getTextsPerLanguage($language: String!) { 3 | txt(where: {language: {_eq: $language}}) { 4 | id 5 | language 6 | txt 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/config/subscribeAutodiscoveryConfigChanges.graphql: -------------------------------------------------------------------------------- 1 | subscription subscribeAutodiscoveryConfigChanges { 2 | config (where: { _or: [{config_key: {_eq: "autoDiscoverSleepTime"}}, {config_key: {_eq: "autoDiscoverStartAt"}} ]}, limit: 2){ 3 | config_key 4 | config_value 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/config/subscribeConfigChangesByUser.graphql: -------------------------------------------------------------------------------- 1 | subscription subscribeConfigChangesByUser($userId: Int, $ignoreKeys: [String]) { 2 | config(where: {_and: [{config_user: {_eq: $userId}}, {config_key: {_nin: $ignoreKeys}} ]}) { 3 | config_key 4 | config_value 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/config/subscribeDailyCheckConfigChanges.graphql: -------------------------------------------------------------------------------- 1 | subscription subscribeDailyCheckConfigChanges { 2 | config (where: { _or: [ 3 | {config_key: {_eq: "dailyCheckStartAt"}}, 4 | {config_key: {_eq: "recRefreshDaily"}}, 5 | {config_key: {_eq: "maxImportDuration"}}, 6 | {config_key: {_eq: "maxImportInterval"}} 7 | ]}){ 8 | config_key 9 | config_value 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/config/subscribeExternalRequestConfigChanges.graphql: -------------------------------------------------------------------------------- 1 | subscription subscribeExternalRequestConfigChanges { 2 | config (where: { _or: [{config_key: {_eq: "externalRequestSleepTime"}}, {config_key: {_eq: "externalRequestStartAt"}} ]}, limit: 2){ 3 | config_key 4 | config_value 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/config/subscribeImportSubnetDataConfigChanges.graphql: -------------------------------------------------------------------------------- 1 | subscription subscribeImportSubnetDataConfigChanges { 2 | config (where: { _or: [{config_key: {_eq: "importSubnetDataSleepTime"}}, {config_key: {_eq: "importSubnetDataStartAt"}}, {config_key: {_eq: "importSubnetDataPath"}} ]}, limit: 3){ 3 | config_key 4 | config_value 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/config/updateConfigItem.graphql: -------------------------------------------------------------------------------- 1 | mutation updateConfigItem( 2 | $key: String! 3 | $value: String! 4 | $user: Int! 5 | ) { 6 | update_config_by_pk( 7 | pk_columns: { config_key: $key, config_user: $user} 8 | _set: { 9 | config_value: $value 10 | } 11 | ) { 12 | updatedId: config_key 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/config/upsertConfig.graphql: -------------------------------------------------------------------------------- 1 | mutation upsertConfig($key: String!, $value: String!, $user: Int!) { 2 | insert_config( 3 | objects: [ 4 | ] { 5 | config_key: $key, 6 | config_value: $value, 7 | config_user: $user 8 | }, 9 | on_conflict: { 10 | constraint: config_pkey, 11 | update_columns: [config_value] 12 | } 13 | ) { 14 | returning { 15 | id: config_key 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/config/upsertConfigItem.graphql: -------------------------------------------------------------------------------- 1 | mutation upsertConfigItem($config_key: String!, $config_value: String!, $config_user: Int!) { 2 | insert_config( 3 | objects: { 4 | config_key: $config_key, 5 | config_value: $config_value, 6 | config_user: $config_user 7 | }, 8 | on_conflict: { 9 | constraint: config_pkey, 10 | update_columns: [config_value] 11 | } 12 | ) { 13 | returning { 14 | id: config_key 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/config/upsertConfigItems.graphql: -------------------------------------------------------------------------------- 1 | mutation upsertConfigItems($config_items: [config_insert_input!]!) { 2 | insert_config( 3 | objects: $config_items, 4 | on_conflict: { 5 | constraint: config_pkey, 6 | update_columns: [config_value] 7 | } 8 | ) { 9 | returning { 10 | id: config_key 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/config/upsertCustomText.graphql: -------------------------------------------------------------------------------- 1 | mutation upsertCustomText($id: String!, $lang: String!, $text: String!) { 2 | insert_customtxt( 3 | objects: { 4 | id: $id 5 | language: $lang 6 | txt: $text 7 | }, 8 | on_conflict: { 9 | constraint: customtxt_pkey , 10 | update_columns: [txt] 11 | } 12 | ) { 13 | returning { 14 | id: id 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/device/changeDeviceState.graphql: -------------------------------------------------------------------------------- 1 | mutation changeDeviceState( 2 | $id: Int! 3 | $importDisabled: Boolean! 4 | ) { 5 | update_device_by_pk( 6 | pk_columns: { dev_id: $id } 7 | _set: { 8 | do_not_import: $importDisabled 9 | } 10 | ) { 11 | updatedId: dev_id 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/device/changeManagementState.graphql: -------------------------------------------------------------------------------- 1 | mutation changeManagementState( 2 | $id: Int! 3 | $importDisabled: Boolean! 4 | ) { 5 | update_management_by_pk( 6 | pk_columns: { mgm_id: $id } 7 | _set: { 8 | do_not_import: $importDisabled 9 | } 10 | ) { 11 | updatedId: mgm_id 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/device/deleteCredential.graphql: -------------------------------------------------------------------------------- 1 | mutation delete_import_credential_by_pk ($id: Int!) { 2 | delete_import_credential_by_pk ( 3 | id: $id 4 | ) { 5 | deletedId: id 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/device/deleteDevice.graphql: -------------------------------------------------------------------------------- 1 | mutation delete_device_by_pk ($id: Int!) { 2 | delete_device_by_pk ( 3 | dev_id: $id 4 | ) { 5 | deletedId: dev_id 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/device/deleteImport.graphql: -------------------------------------------------------------------------------- 1 | mutation delete_import($mgmId: Int!) { 2 | delete_import_control(where: {mgm_id: {_eq: $mgmId}, successful_import: {_eq: false}, stop_time: {_is_null: true}}) { 3 | affected_rows 4 | } 5 | } -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/device/deleteManagement.graphql: -------------------------------------------------------------------------------- 1 | mutation delete_management_by_pk ($id: Int!) { 2 | delete_management_by_pk ( 3 | mgm_id: $id 4 | ) { 5 | deletedId: mgm_id 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/device/fragments/deviceTypeDetails.graphql: -------------------------------------------------------------------------------- 1 | fragment deviceTypeDetails on stm_dev_typ { 2 | id: dev_typ_id 3 | name: dev_typ_name 4 | version: dev_typ_version 5 | manufacturer: dev_typ_manufacturer 6 | isPureRoutingDevice: is_pure_routing_device 7 | isManagement: dev_typ_is_mgmt 8 | predefinedObjects: dev_typ_predef_obj 9 | } 10 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/device/fragments/importCredentials.graphql: -------------------------------------------------------------------------------- 1 | 2 | fragment ImportCredentialDetails on import_credential 3 | { 4 | user: username 5 | secret 6 | sshPublicKey: public_key 7 | credential_name 8 | is_key_pair 9 | id 10 | cloud_client_id 11 | cloud_client_secret 12 | } 13 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/device/fragments/importCredentialsWithoutSecrets.graphql: -------------------------------------------------------------------------------- 1 | 2 | fragment ImportCredentialDetailsWithoutSecrets on import_credential 3 | { 4 | user: username 5 | sshPublicKey: public_key 6 | credential_name 7 | is_key_pair 8 | id 9 | cloud_client_id 10 | } 11 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/device/getCredentials.graphql: -------------------------------------------------------------------------------- 1 | query getCredentials 2 | { 3 | import_credential { 4 | ...ImportCredentialDetails 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/device/getCredentialsWithoutSecrets.graphql: -------------------------------------------------------------------------------- 1 | query getCredentialsWithoutSecrets 2 | { 3 | import_credential { 4 | ...ImportCredentialDetailsWithoutSecrets 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/device/getDeviceDetails.graphql: -------------------------------------------------------------------------------- 1 | query getDeviceDetails 2 | { 3 | device{ 4 | ...deviceDetails 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/device/getDeviceTypeDetails.graphql: -------------------------------------------------------------------------------- 1 | query getDeviceTypeDetails { 2 | deviceType: stm_dev_typ(order_by: {dev_typ_name: asc, dev_typ_version:asc}) { 3 | ...deviceTypeDetails 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/device/getManagementDetailsWithoutSecrets.graphql: -------------------------------------------------------------------------------- 1 | query getManagementDetails 2 | { 3 | management(order_by: {mgm_name:asc}){ 4 | ...ManagementDetailsWithoutSecrets 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/device/getManagementNames.graphql: -------------------------------------------------------------------------------- 1 | query getManagementNames 2 | { 3 | management(order_by: {mgm_name:asc}){ 4 | id: mgm_id 5 | name: mgm_name 6 | extMgtData: ext_mgm_data 7 | devices { 8 | id: dev_id 9 | name: dev_name 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/device/getManagementsDetails.graphql: -------------------------------------------------------------------------------- 1 | query getManagementDetails 2 | { 3 | management(order_by: {mgm_name:asc}){ 4 | ...ManagementDetails 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/device/getMgmtNumberUsingCred.graphql: -------------------------------------------------------------------------------- 1 | query managementsUsingCredentials( 2 | $importCredentialId: Int! 3 | ) { 4 | management_aggregate (where: { import_credential_id:{_eq: $importCredentialId}}){ 5 | aggregate { 6 | count 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/extRequest/addTicketId.graphql: -------------------------------------------------------------------------------- 1 | mutation addTicketId( 2 | $ownerId: Int! 3 | $ticketId: bigint! 4 | ) { 5 | insert_owner_ticket(objects: { 6 | owner_id: $ownerId 7 | ticket_id: $ticketId 8 | }) { 9 | returning { 10 | insertedIdLong: ticket_id 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/extRequest/fragments/extRequestDetails.graphql: -------------------------------------------------------------------------------- 1 | 2 | fragment extRequestDetails on ext_request 3 | { 4 | id 5 | owner_id 6 | ticket_id 7 | ext_ticket_system 8 | ext_query_variables 9 | ext_request_content 10 | task_number 11 | ext_request_type 12 | ext_request_state 13 | ext_ticket_id 14 | last_creation_response 15 | last_processing_response 16 | create_date 17 | finish_date 18 | wait_cycles 19 | attempts 20 | locked 21 | } 22 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/extRequest/getAndLockOpenRequests.graphql: -------------------------------------------------------------------------------- 1 | 2 | mutation getAndLockOpenRequests ($states: [String!] ){ 3 | update_ext_request (where: { ext_request_state: { _in: $states }, locked: { _eq: false } }, 4 | _set: { 5 | locked: true 6 | } 7 | ){ 8 | returning { 9 | ...extRequestDetails 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/extRequest/getLastRequest.graphql: -------------------------------------------------------------------------------- 1 | 2 | query getLastRequest ($ticketId: bigint! ){ 3 | ext_request (where: { ticket_id: {_eq: $ticketId} } order_by: { id: desc }, limit: 1){ 4 | ...extRequestDetails 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/extRequest/getLatestTicketId.graphql: -------------------------------------------------------------------------------- 1 | 2 | query getLatestTicketId ($ownerId: Int!) { 3 | owner_ticket (where: {owner_id: {_eq: $ownerId}} order_by: { ticket_id: desc }){ 4 | ticket_id 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/extRequest/getOpenRequests.graphql: -------------------------------------------------------------------------------- 1 | 2 | query getOpenRequests ($states: [String!] ){ 3 | ext_request (where: { ext_request_state: {_in: $states} } order_by: { id: asc }){ 4 | ...extRequestDetails 5 | owner: owner { 6 | id 7 | name 8 | app_id_external 9 | common_service_possible 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/extRequest/subscribeExtRequestStateUpdate.graphql: -------------------------------------------------------------------------------- 1 | subscription subscribeExtRequestStateUpdate ($id: bigint!){ 2 | ext_request(where: { id: {_eq: $id} }, limit: 1) { 3 | id 4 | owner_id 5 | ticket_id 6 | task_number 7 | ext_request_state 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/extRequest/updateExtRequestFinal.graphql: -------------------------------------------------------------------------------- 1 | mutation updateExtRequestFinal( 2 | $id: bigint! 3 | $extRequestState: String! 4 | $finishDate: timestamp 5 | ) { 6 | update_ext_request_by_pk( 7 | pk_columns: { id: $id } 8 | _set: { 9 | ext_request_state: $extRequestState 10 | finish_date: $finishDate 11 | }) { 12 | updatedIdLong: id 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/extRequest/updateExtRequestProcess.graphql: -------------------------------------------------------------------------------- 1 | mutation updateExtRequestProcess( 2 | $id: bigint! 3 | $extRequestState: String! 4 | $processingResponse: String 5 | ) { 6 | update_ext_request_by_pk( 7 | pk_columns: { id: $id } 8 | _set: { 9 | ext_request_state: $extRequestState 10 | last_processing_response: $processingResponse 11 | }) { 12 | updatedIdLong: id 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/extRequest/updateExternalRequestLock.graphql: -------------------------------------------------------------------------------- 1 | mutation updateExternalRequestLock( 2 | $id: bigint! 3 | $locked: Boolean! 4 | ) { 5 | update_ext_request_by_pk( 6 | pk_columns: { id: $id } 7 | _set: { 8 | locked: $locked 9 | }) { 10 | updatedIdLong: id 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/extRequest/updateExternalRequestWaitCycles.graphql: -------------------------------------------------------------------------------- 1 | mutation updateExternalRequestWaitCycles( 2 | $id: bigint! 3 | $waitCycles: Int! 4 | ) { 5 | update_ext_request_by_pk( 6 | pk_columns: { id: $id } 7 | _set: { 8 | wait_cycles: $waitCycles 9 | }) { 10 | updatedIdLong: id 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/addAppServerToConnection.graphql: -------------------------------------------------------------------------------- 1 | mutation addAppServerToConnection( 2 | $nwObjectId: bigint! 3 | $connectionId: Int! 4 | $connectionField: Int! 5 | ) { 6 | insert_modelling_nwobject_connection(objects: { 7 | nwobject_id: $nwObjectId 8 | connection_id: $connectionId 9 | connection_field: $connectionField 10 | }) { 11 | returning { 12 | insertedIdLong: nwobject_id 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/addNwAppZone.graphql: -------------------------------------------------------------------------------- 1 | mutation newAppZone( 2 | $appId: Int! 3 | $name: String 4 | $idString: String 5 | $creator: String 6 | ) { 7 | insert_modelling_nwgroup(objects: { 8 | app_id: $appId 9 | name: $name 10 | id_string: $idString 11 | creator: $creator 12 | group_type: 21 13 | }) { 14 | returning { 15 | newIdLong: id 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/addNwGroupToConnection.graphql: -------------------------------------------------------------------------------- 1 | mutation addNwGroupToConnection( 2 | $nwGroupId: bigint! 3 | $connectionId: Int! 4 | $connectionField: Int! 5 | ) { 6 | insert_modelling_nwgroup_connection(objects: { 7 | nwgroup_id: $nwGroupId 8 | connection_id: $connectionId 9 | connection_field: $connectionField 10 | }) { 11 | returning { 12 | insertedIdLong: nwgroup_id 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/addNwObjectToNwGroup.graphql: -------------------------------------------------------------------------------- 1 | mutation addNwObjectToNwGroup( 2 | $nwObjectId: bigint! 3 | $nwGroupId: bigint! 4 | ) { 5 | insert_modelling_nwobject_nwgroup(objects: { 6 | nwobject_id: $nwObjectId 7 | nwgroup_id: $nwGroupId 8 | }) { 9 | returning { 10 | insertedIdLong: nwobject_id 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/addSelectedConnection.graphql: -------------------------------------------------------------------------------- 1 | mutation addSelectedConnection( 2 | $appId: Int! 3 | $connectionId: Int! 4 | ) { 5 | insert_modelling_selected_connections(objects: { 6 | app_id: $appId 7 | connection_id: $connectionId 8 | }) { 9 | returning { 10 | insertedId: connection_id 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/addSelectedNwGroupObject.graphql: -------------------------------------------------------------------------------- 1 | mutation addSelectedNwGroupObject( 2 | $appId: Int! 3 | $nwGroupId: bigint! 4 | ) { 5 | insert_modelling_selected_objects(objects: { 6 | app_id: $appId 7 | nwgroup_id: $nwGroupId 8 | }) { 9 | returning { 10 | insertedIdLong: nwgroup_id 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/addServiceGroupToConnection.graphql: -------------------------------------------------------------------------------- 1 | mutation addServiceGroupToConnection( 2 | $serviceGroupId: Int! 3 | $connectionId: Int! 4 | ) { 5 | insert_modelling_service_group_connection(objects: { 6 | service_group_id: $serviceGroupId 7 | connection_id: $connectionId 8 | }) { 9 | returning { 10 | insertedId: service_group_id 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/addServiceToConnection.graphql: -------------------------------------------------------------------------------- 1 | mutation addServiceToConnection( 2 | $serviceId: Int! 3 | $connectionId: Int! 4 | ) { 5 | insert_modelling_service_connection(objects: { 6 | service_id: $serviceId 7 | connection_id: $connectionId 8 | }) { 9 | returning { 10 | insertedId: service_id 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/addServiceToServiceGroup.graphql: -------------------------------------------------------------------------------- 1 | mutation addServiceToServiceGroup( 2 | $serviceId: Int! 3 | $serviceGroupId: Int! 4 | ) { 5 | insert_modelling_service_service_group(objects: { 6 | service_id: $serviceId 7 | service_group_id: $serviceGroupId 8 | }) { 9 | returning { 10 | insertedId: service_id 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/deleteAppServer.graphql: -------------------------------------------------------------------------------- 1 | mutation deleteAppServer($id: bigint!) { 2 | delete_owner_network(where: {id: {_eq: $id}}) { 3 | affected_rows 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/deleteConnection.graphql: -------------------------------------------------------------------------------- 1 | mutation deleteConnection($id: Int!) { 2 | delete_modelling_connection_by_pk(id: $id) { 3 | deletedId: id 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/deleteNwGroup.graphql: -------------------------------------------------------------------------------- 1 | mutation deleteNwGroup($id: bigint!) { 2 | delete_modelling_nwgroup(where: {id: {_eq: $id}}) { 3 | affected_rows 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/deleteService.graphql: -------------------------------------------------------------------------------- 1 | mutation deleteService($id: Int!) { 2 | delete_modelling_service(where: {id: {_eq: $id}}) { 3 | affected_rows 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/deleteServiceGroup.graphql: -------------------------------------------------------------------------------- 1 | mutation deleteServiceGroup($id: Int!) { 2 | delete_modelling_service_group(where: {id: {_eq: $id}}) { 3 | affected_rows 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/fragments/appRoleDetails.graphql: -------------------------------------------------------------------------------- 1 | fragment appRoleDetails on modelling_nwgroup { 2 | id 3 | app_id 4 | id_string 5 | group_type 6 | name 7 | comment 8 | is_deleted 9 | creator 10 | creation_date 11 | nwobjects: nwobject_nwgroups{ 12 | owner_network{ 13 | ...appServerDetails 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/fragments/appServerDetails.graphql: -------------------------------------------------------------------------------- 1 | fragment appServerDetails on owner_network { 2 | id 3 | name 4 | ip 5 | ip_end 6 | import_source 7 | is_deleted 8 | custom_type 9 | app_id: owner_id 10 | } 11 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/fragments/areaDetails.graphql: -------------------------------------------------------------------------------- 1 | fragment areaDetails on modelling_nwgroup { 2 | id 3 | name 4 | id_string 5 | is_deleted 6 | ip_data: nwobject_nwgroups{ 7 | owner_network{ 8 | id 9 | name 10 | ip 11 | ip_end 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/fragments/serviceDetails.graphql: -------------------------------------------------------------------------------- 1 | fragment serviceDetails on modelling_service { 2 | id 3 | name 4 | is_global 5 | port 6 | port_end 7 | proto_id 8 | protocol: stm_ip_proto { 9 | id: ip_proto_id 10 | name: ip_proto_name 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/fragments/serviceGroupDetails.graphql: -------------------------------------------------------------------------------- 1 | fragment serviceGroupDetails on modelling_service_group { 2 | id 3 | app_id 4 | name 5 | is_global 6 | comment 7 | creator 8 | creation_date 9 | services: service_service_groups{ 10 | service{ 11 | ...serviceDetails 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/getAllAppServers.graphql: -------------------------------------------------------------------------------- 1 | query getAllAppServers { 2 | owner_network (where: { nw_type: { _eq: 10 } } order_by: { name: asc }){ 3 | ...appServerDetails 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/getAppRoles.graphql: -------------------------------------------------------------------------------- 1 | query getAppRoles ($appId: Int!){ 2 | modelling_nwgroup (where: { app_id: { _eq: $appId }, group_type: { _eq: 20 } } order_by: { name: asc }){ 3 | ...appRoleDetails 4 | nwobjects: nwobject_nwgroups{ 5 | owner_network{ 6 | ...appServerDetails 7 | } 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/getAppRolesForAppServer.graphql: -------------------------------------------------------------------------------- 1 | query getAppRolesForAppServer ($id: bigint!){ 2 | modelling_nwobject_nwgroup (where: { nwobject_id: { _eq: $id }, nwgroup: { group_type: { _eq: 20 } } }){ 3 | id: nwgroup_id 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/getAppServerForAppRole.graphql: -------------------------------------------------------------------------------- 1 | query getAppServerForAppRole ($nwGroupId: bigint!){ 2 | modelling_nwobject_nwgroup (where: { nwgroup_id: { _eq: $nwGroupId } } order_by: { name: asc }){ 3 | owner_network{ 4 | ...appServerDetails 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/getAppServersByIp.graphql: -------------------------------------------------------------------------------- 1 | query getAppServersByIp ( 2 | $appId: Int! 3 | $ip: cidr! 4 | $ipEnd: cidr! 5 | ){ 6 | owner_network (where: { owner_id: { _eq: $appId }, nw_type: { _eq: 10 }, ip: { _eq: $ip }, ip_end: { _eq: $ipEnd } } order_by: { name: asc }){ 7 | ...appServerDetails 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/getAppServersByName.graphql: -------------------------------------------------------------------------------- 1 | query getAppServersByName ( 2 | $appId: Int! 3 | $name: String! 4 | ){ 5 | owner_network (where: { owner_id: { _eq: $appId }, nw_type: { _eq: 10 }, name: { _eq: $name } } order_by: { name: asc }){ 6 | ...appServerDetails 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/getAppServersBySource.graphql: -------------------------------------------------------------------------------- 1 | query getAppServersBySource ($importSource: String!, $appId: Int){ 2 | owner_network (where: { import_source: { _ilike: $importSource }, nw_type: { _eq: 10 }, owner_id: { _eq: $appId } }){ 3 | ...appServerDetails 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/getAppServersForOwner.graphql: -------------------------------------------------------------------------------- 1 | query getAppServersForOwner ($appId: Int!){ 2 | owner_network (where: { owner_id: { _eq: $appId }, nw_type: { _eq: 10 } } order_by: { name: asc }){ 3 | ...appServerDetails 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/getAppZonesByAppId.graphql: -------------------------------------------------------------------------------- 1 | query getAppZonesByAppId($appId: Int!) { 2 | modelling_nwgroup (where: { group_type: { _eq: 21 }, app_id: { _eq: $appId} } order_by: { name: asc }){ 3 | id 4 | app_id 5 | name 6 | id_string 7 | is_deleted 8 | nwobjects: nwobject_nwgroups{ 9 | owner_network{ 10 | ...appServerDetails 11 | } 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/getAreas.graphql: -------------------------------------------------------------------------------- 1 | query getAreas { 2 | modelling_nwgroup (where: { group_type: { _eq: 23 } } order_by: { name: asc }){ 3 | ...areaDetails 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/getCommonServices.graphql: -------------------------------------------------------------------------------- 1 | query getCommonServices{ 2 | modelling_connection (where: { common_service: { _eq: true } } order_by: { name: asc }){ 3 | ...connectionDetails 4 | owner{ 5 | name 6 | app_id_external 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/getConnectionById.graphql: -------------------------------------------------------------------------------- 1 | query getConnectionById($id: Int!){ 2 | modelling_connection (where: { id: { _eq: $id } }){ 3 | ...connectionDetails 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/getConnectionIdsForAppServer.graphql: -------------------------------------------------------------------------------- 1 | query getConnectionIdsForAppServer ($id: bigint!){ 2 | modelling_nwobject_connection (where: { nwobject_id: { _eq: $id } }){ 3 | connection_id 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/getConnectionIdsForNwGroup.graphql: -------------------------------------------------------------------------------- 1 | query getConnectionIdsForNwGroup ($id: bigint!){ 2 | modelling_nwgroup_connection (where: { nwgroup_id: { _eq: $id } }){ 3 | connection_id 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/getConnectionIdsForService.graphql: -------------------------------------------------------------------------------- 1 | query getConnectionIdsForService ($serviceId: Int!){ 2 | modelling_service_connection (where: { service_id: { _eq: $serviceId } }){ 3 | connection_id 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/getConnectionIdsForServiceGroup.graphql: -------------------------------------------------------------------------------- 1 | query getConnectionIdsForServiceGroup ($serviceGroupId: Int!){ 2 | modelling_service_group_connection (where: { service_group_id: { _eq: $serviceGroupId } }){ 3 | connection_id 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/getConnections.graphql: -------------------------------------------------------------------------------- 1 | query getConnections ($appId: Int!){ 2 | modelling_connection (where: { _or: [{app_id: { _eq: $appId }}, {proposed_app_id: { _eq: $appId }}] } order_by: { is_interface: desc, common_service: desc, name: asc }){ 3 | ...connectionDetails 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/getConnectionsByTicketId.graphql: -------------------------------------------------------------------------------- 1 | query getConnectionsByTicketId ($ticketId: bigint){ 2 | modelling_connection (where: { ticket_id: { _eq: $ticketId } } order_by: { is_interface: desc, common_service: desc, name: asc }){ 3 | ...connectionDetails 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/getConnectionsResolved.graphql: -------------------------------------------------------------------------------- 1 | query getConnectionsResolved ($appId: Int!){ 2 | modelling_connection (where: { _or: [{app_id: { _eq: $appId }}, {proposed_app_id: { _eq: $appId }}] } order_by: { is_interface: desc, common_service: desc, name: asc }){ 3 | ...connectionResolvedDetails 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/getDummyAppRole.graphql: -------------------------------------------------------------------------------- 1 | query getDummyAppRole { 2 | modelling_nwgroup (where: { app_id: { _is_null: true }, group_type: { _eq: 20 } }){ 3 | ...appRoleDetails 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/getGlobalServiceGroups.graphql: -------------------------------------------------------------------------------- 1 | query getGlobalServiceGroups{ 2 | modelling_service_group (where: { is_global: { _eq: true } } order_by: { name: asc }){ 3 | ...serviceGroupDetails 4 | services: service_service_groups{ 5 | service{ 6 | ...serviceDetails 7 | } 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/getGlobalServices.graphql: -------------------------------------------------------------------------------- 1 | query getGlobalServices{ 2 | modelling_service (where: { is_global: { _eq: true } } order_by: { name: asc }){ 3 | ...serviceDetails 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/getHistory.graphql: -------------------------------------------------------------------------------- 1 | query getHistory ( 2 | $limit: Int 3 | $offset: Int 4 | ){ 5 | modelling_change_history ( 6 | limit: $limit 7 | offset: $offset 8 | order_by: { change_time: desc } 9 | ){ 10 | id 11 | app_id 12 | change_type 13 | object_type 14 | object_id 15 | change_text 16 | changer 17 | change_time 18 | change_source 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/getHistoryForApp.graphql: -------------------------------------------------------------------------------- 1 | query getHistoryForApp ($appId: Int!){ 2 | modelling_change_history (where: {app_id: {_eq: $appId}} order_by: { change_time: desc }){ 3 | id 4 | app_id 5 | change_type 6 | object_type 7 | object_id 8 | change_text 9 | changer 10 | change_time 11 | change_source 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/getInterfaceUsers.graphql: -------------------------------------------------------------------------------- 1 | query getInterfaceUsers ($id: Int){ 2 | modelling_connection (where: { used_interface_id: { _eq: $id } } ){ 3 | id 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/getNewestAppRoles.graphql: -------------------------------------------------------------------------------- 1 | query getNewestAppRoles ($pattern: String!){ 2 | modelling_nwgroup (where: { id_string: { _ilike: $pattern }, group_type: { _eq: 20 } } order_by: { id: desc }){ 3 | id 4 | id_string 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/getNwGroupObjects.graphql: -------------------------------------------------------------------------------- 1 | query getNwGroupObjects ($grpType: Int!){ 2 | modelling_nwgroup (where: { group_type: { _eq: $grpType }, is_deleted: { _eq: false } } order_by: { name: asc }){ 3 | id 4 | name 5 | id_string 6 | app_id 7 | group_type 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/getPublishedInterfaces.graphql: -------------------------------------------------------------------------------- 1 | query getPublishedInterfaces{ 2 | modelling_connection (where: { is_interface: { _eq: true }, is_published: { _eq: true }} order_by: { name: asc }){ 3 | ...connectionDetails 4 | owner{ 5 | name 6 | app_id_external 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/getSelectedConnections.graphql: -------------------------------------------------------------------------------- 1 | query getSelectedConnections ($appId: Int!){ 2 | modelling_selected_connections (where: { app_id: { _eq: $appId } }){ 3 | connection { 4 | ...connectionDetails 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/getSelectedNwGroupObjects.graphql: -------------------------------------------------------------------------------- 1 | query getSelectedNwGroupObjects ($appId: Int!){ 2 | modelling_selected_objects (where: { app_id: { _eq: $appId } }){ 3 | nwgroup { 4 | id 5 | id_string 6 | name 7 | group_type 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/getServiceGroupById.graphql: -------------------------------------------------------------------------------- 1 | query getServiceGroupById ($id: Int!){ 2 | modelling_service_group_by_pk(id: $id){ 3 | ...serviceGroupDetails 4 | services: service_service_groups{ 5 | service{ 6 | ...serviceDetails 7 | } 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/getServiceGroupIdsForService.graphql: -------------------------------------------------------------------------------- 1 | query getServiceGroupIdsForService ($serviceId: Int!){ 2 | modelling_service_service_group (where: { service_id: { _eq: $serviceId } }){ 3 | service_group_id 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/getServiceGroupsForApp.graphql: -------------------------------------------------------------------------------- 1 | query getServiceGroupsForApp ($appId: Int!){ 2 | modelling_service_group (where: { app_id: { _eq: $appId } } order_by: { name: asc }){ 3 | ...serviceGroupDetails 4 | services: service_service_groups{ 5 | service{ 6 | ...serviceDetails 7 | } 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/getServicesForApp.graphql: -------------------------------------------------------------------------------- 1 | query getServicesForApp ($appId: Int!){ 2 | modelling_service (where: { app_id: { _eq: $appId } } order_by: { name: asc }){ 3 | ...serviceDetails 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/newAppRole.graphql: -------------------------------------------------------------------------------- 1 | mutation newAppRole( 2 | $name: String 3 | $idString: String 4 | $appId: Int 5 | $comment: String 6 | $creator: String 7 | ) { 8 | insert_modelling_nwgroup(objects: { 9 | name: $name 10 | id_string: $idString 11 | app_id: $appId 12 | comment: $comment 13 | creator: $creator 14 | group_type: 20 15 | }) { 16 | returning { 17 | newIdLong: id 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/newArea.graphql: -------------------------------------------------------------------------------- 1 | mutation newArea( 2 | $name: String 3 | $idString: String 4 | $creator: String 5 | ) { 6 | insert_modelling_nwgroup(objects: { 7 | name: $name 8 | id_string: $idString 9 | creator: $creator 10 | group_type: 23 11 | }) { 12 | returning { 13 | newIdLong: id 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/newAreaIpData.graphql: -------------------------------------------------------------------------------- 1 | mutation newAreaIpData( 2 | $name: String 3 | $ip: cidr 4 | $ipEnd: cidr 5 | $importSource: String 6 | ) { 7 | insert_owner_network(objects: { 8 | name: $name 9 | ip: $ip 10 | ip_end: $ipEnd 11 | import_source: $importSource 12 | is_deleted: false 13 | nw_type: 11 14 | }) { 15 | returning { 16 | newIdLong: id 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/newService.graphql: -------------------------------------------------------------------------------- 1 | mutation newService( 2 | $name: String 3 | $appId: Int 4 | $isGlobal: Boolean 5 | $port: Int 6 | $portEnd: Int 7 | $protoId: Int 8 | ) { 9 | insert_modelling_service(objects: { 10 | name: $name 11 | app_id: $appId 12 | is_global: $isGlobal 13 | port: $port 14 | port_end: $portEnd 15 | proto_id: $protoId 16 | }) { 17 | returning { 18 | newId: id 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/newServiceGroup.graphql: -------------------------------------------------------------------------------- 1 | mutation newServiceGroup( 2 | $name: String 3 | $appId: Int 4 | $isGlobal: Boolean 5 | $comment: String 6 | $creator: String 7 | ) { 8 | insert_modelling_service_group(objects: { 9 | name: $name 10 | app_id: $appId 11 | is_global: $isGlobal 12 | comment: $comment 13 | creator: $creator 14 | }) { 15 | returning { 16 | newId: id 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/removeAppServerFromConnection.graphql: -------------------------------------------------------------------------------- 1 | mutation removeAppServerFromConnection( 2 | $nwObjectId: bigint! 3 | $connectionId: Int! 4 | $connectionField: Int! 5 | ) { 6 | delete_modelling_nwobject_connection(where: {nwobject_id: {_eq: $nwObjectId}, connection_id: {_eq: $connectionId}, connection_field: {_eq: $connectionField}}) { 7 | affected_rows 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/removeNwGroupFromConnection.graphql: -------------------------------------------------------------------------------- 1 | mutation removeNwGroupFromConnection( 2 | $nwGroupId: bigint! 3 | $connectionId: Int! 4 | $connectionField: Int! 5 | ) { 6 | delete_modelling_nwgroup_connection(where: {nwgroup_id: {_eq: $nwGroupId}, connection_id: {_eq: $connectionId}, connection_field: {_eq: $connectionField}}) { 7 | affected_rows 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/removeNwObjectFromNwGroup.graphql: -------------------------------------------------------------------------------- 1 | mutation removeNwObjectFromNwGroup( 2 | $nwObjectId: bigint! 3 | $nwGroupId: bigint! 4 | ) { 5 | delete_modelling_nwobject_nwgroup(where: {nwobject_id: {_eq: $nwObjectId}, nwgroup_id: {_eq: $nwGroupId}}) { 6 | affected_rows 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/removeSelectedConnection.graphql: -------------------------------------------------------------------------------- 1 | mutation removeSelectedConnection( 2 | $connectionId: Int! 3 | ) { 4 | delete_modelling_selected_connections(where: {connection_id: {_eq: $connectionId}}) { 5 | affected_rows 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/removeSelectedConnectionFromApp.graphql: -------------------------------------------------------------------------------- 1 | mutation removeSelectedConnectionFromApp( 2 | $appId: Int! 3 | $connectionId: Int! 4 | ) { 5 | delete_modelling_selected_connections(where: {app_id: {_eq: $appId}, connection_id: {_eq: $connectionId}}) { 6 | affected_rows 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/removeSelectedNwGroupObject.graphql: -------------------------------------------------------------------------------- 1 | mutation removeSelectedNwGroupObject( 2 | $appId: Int! 3 | $nwGroupId: bigint! 4 | ) { 5 | delete_modelling_selected_objects(where: {app_id: {_eq: $appId}, nwgroup_id: {_eq: $nwGroupId}}) { 6 | affected_rows 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/removeSelectedNwGroupObjectFromAllApps.graphql: -------------------------------------------------------------------------------- 1 | mutation removeSelectedNwGroupObjectFromAllApps( 2 | $nwGroupId: bigint! 3 | ) { 4 | delete_modelling_selected_objects(where: {nwgroup_id: {_eq: $nwGroupId}}) { 5 | affected_rows 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/removeServiceFromConnection.graphql: -------------------------------------------------------------------------------- 1 | mutation removeServiceFromConnection( 2 | $serviceId: Int! 3 | $connectionId: Int! 4 | ) { 5 | delete_modelling_service_connection(where: {service_id: {_eq: $serviceId}, connection_id: {_eq: $connectionId}}) { 6 | affected_rows 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/removeServiceFromServiceGroup.graphql: -------------------------------------------------------------------------------- 1 | mutation removeServiceFromServiceGroup( 2 | $serviceId: Int! 3 | $serviceGroupId: Int! 4 | ) { 5 | delete_modelling_service_service_group(where: {service_id: {_eq: $serviceId}, service_group_id: {_eq: $serviceGroupId}}) { 6 | affected_rows 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/removeServiceGroupFromConnection.graphql: -------------------------------------------------------------------------------- 1 | mutation removeServiceGroupFromConnection( 2 | $serviceGroupId: Int! 3 | $connectionId: Int! 4 | ) { 5 | delete_modelling_service_group_connection(where: {service_group_id: {_eq: $serviceGroupId}, connection_id: {_eq: $connectionId}}) { 6 | affected_rows 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/replaceUsedInterface.graphql: -------------------------------------------------------------------------------- 1 | mutation replaceUsedInterface( 2 | $usedInterfaceIdOld: Int! 3 | $usedInterfaceIdNew: Int! 4 | ) { 5 | update_modelling_connection(where: {used_interface_id: {_eq: $usedInterfaceIdOld}} 6 | _set: { 7 | used_interface_id: $usedInterfaceIdNew 8 | }) { 9 | affected_rows 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/setAppServerDeletedState.graphql: -------------------------------------------------------------------------------- 1 | mutation setAppServerDeletedState( 2 | $id: bigint! 3 | $deleted: Boolean! 4 | ) { 5 | update_owner_network_by_pk( 6 | pk_columns: { id: $id } 7 | _set: { 8 | is_deleted: $deleted 9 | }) { 10 | UpdatedIdLong: id 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/setAppServerName.graphql: -------------------------------------------------------------------------------- 1 | mutation setAppServerName( 2 | $id: bigint! 3 | $newName: String! 4 | ) { 5 | update_owner_network_by_pk( 6 | pk_columns: { id: $id } 7 | _set: { 8 | name: $newName 9 | }) { 10 | UpdatedIdLong: id 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/setAppServerType.graphql: -------------------------------------------------------------------------------- 1 | mutation setAppServerType( 2 | $id: bigint! 3 | $customType: Int 4 | ) { 5 | update_owner_network_by_pk( 6 | pk_columns: { id: $id } 7 | _set: { 8 | custom_type: $customType 9 | }) { 10 | UpdatedIdLong: id 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/setAreaDeletedState.graphql: -------------------------------------------------------------------------------- 1 | mutation setAreaDeletedState( 2 | $id: bigint! 3 | $deleted: Boolean! 4 | ) { 5 | update_modelling_nwgroup_by_pk( 6 | pk_columns: { id: $id } 7 | _set: { 8 | is_deleted: $deleted 9 | }) { 10 | UpdatedIdLong: id 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/updateAppRole.graphql: -------------------------------------------------------------------------------- 1 | mutation updateAppRole( 2 | $id: bigint! 3 | $name: String 4 | $idString: String 5 | $appId: Int 6 | $comment: String 7 | ) { 8 | update_modelling_nwgroup_by_pk( 9 | pk_columns: { id: $id } 10 | _set: { 11 | name: $name 12 | id_string: $idString 13 | app_id: $appId 14 | comment: $comment 15 | }) { 16 | UpdatedIdLong: id 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/updateConnectionProperties.graphql: -------------------------------------------------------------------------------- 1 | mutation updateConnectionProperties( 2 | $id: Int! 3 | $connProp: String 4 | ) { 5 | update_modelling_connection_by_pk( 6 | pk_columns: { id: $id } 7 | _set: { 8 | conn_prop: $connProp 9 | }) { 10 | updatedId: id 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/updateConnectionPublish.graphql: -------------------------------------------------------------------------------- 1 | mutation updateConnectionPublish( 2 | $id: Int! 3 | $isPublished: Boolean 4 | $isRequested: Boolean 5 | ) { 6 | update_modelling_connection_by_pk( 7 | pk_columns: { id: $id } 8 | _set: { 9 | is_requested: $isRequested 10 | is_published: $isPublished 11 | }) { 12 | updatedId: id 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/updateNwObjectInConnection.graphql: -------------------------------------------------------------------------------- 1 | mutation updateNwObjectInConnection($oldObjectId: bigint!, $newObjectId: bigint!) { 2 | update_modelling_nwobject_connection(where: {nwobject_id: {_eq: $oldObjectId}}, _set: {nwobject_id: $newObjectId}) { 3 | affected_rows 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/updateNwObjectInNwGroup.graphql: -------------------------------------------------------------------------------- 1 | mutation updateNwObjectInNwGroup($oldObjectId: bigint!, $newObjectId: bigint!) { 2 | update_modelling_nwobject_nwgroup(where: {nwobject_id: {_eq: $oldObjectId}}, _set: {nwobject_id: $newObjectId}) { 3 | affected_rows 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/updateProposedConnectionOwner.graphql: -------------------------------------------------------------------------------- 1 | mutation updateProposedConnectionOwner( 2 | $id: Int! 3 | $propAppId: Int 4 | ) { 5 | update_modelling_connection_by_pk( 6 | pk_columns: { id: $id } 7 | _set: { 8 | proposed_app_id: $propAppId 9 | }) { 10 | updatedId: id 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/updateService.graphql: -------------------------------------------------------------------------------- 1 | mutation updateService( 2 | $id: Int! 3 | $name: String 4 | $port: Int 5 | $portEnd: Int 6 | $protoId: Int 7 | ) { 8 | update_modelling_service_by_pk( 9 | pk_columns: { id: $id } 10 | _set: { 11 | name: $name 12 | port: $port 13 | port_end: $portEnd 14 | proto_id: $protoId 15 | }) { 16 | updatedId: id 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/modelling/updateServiceGroup.graphql: -------------------------------------------------------------------------------- 1 | mutation updateServiceGroup( 2 | $id: Int! 3 | $name: String 4 | $comment: String 5 | ) { 6 | update_modelling_service_group_by_pk( 7 | pk_columns: { id: $id } 8 | _set: { 9 | name: $name 10 | comment: $comment 11 | }) { 12 | updatedId: id 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/monitor/acknowledgeAlert.graphql: -------------------------------------------------------------------------------- 1 | mutation acknowledgeAlert( 2 | $id: bigint! 3 | $ackUser: Int! 4 | $ackTime: timestamp! 5 | ) { 6 | update_alert_by_pk( 7 | pk_columns: { alert_id: $id } 8 | _set: { 9 | ack_by: $ackUser 10 | ack_timestamp: $ackTime 11 | } 12 | ) { 13 | updatedIdLong: alert_id 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/monitor/addUiLogEntry.graphql: -------------------------------------------------------------------------------- 1 | mutation addUiLogEntry( 2 | $user: Int! 3 | $severity: Int! 4 | $suspectedCause: String 5 | $description: String 6 | ) { 7 | insert_log_data_issue( 8 | objects: { 9 | source: "ui" 10 | user_id: $user 11 | severity: $severity 12 | suspected_cause: $suspectedCause 13 | description: $description 14 | } 15 | ) { 16 | returning { 17 | newIdLong: data_issue_id 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/monitor/getAlertById.graphql: -------------------------------------------------------------------------------- 1 | query getAlertById ($alertId: bigint!) { 2 | alert_by_pk(alert_id: $alertId) { 3 | ack_by 4 | ack_timestamp 5 | alert_dev_id 6 | alert_mgm_id 7 | alert_timestamp 8 | description 9 | json_data 10 | ref_alert_id 11 | ref_log_id 12 | title 13 | user_id 14 | alert_code 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/monitor/getAlerts.graphql: -------------------------------------------------------------------------------- 1 | query getAlerts { 2 | alert (order_by: { alert_id: desc }){ 3 | alert_id 4 | source 5 | title 6 | description 7 | alert_mgm_id 8 | alert_dev_id 9 | alert_timestamp 10 | user_id 11 | ack_by 12 | ack_timestamp 13 | alert_code 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/monitor/getAllUiLogEntrys.graphql: -------------------------------------------------------------------------------- 1 | query getAllUiLogEntrys{ 2 | log_data_issue (where: {source: {_eq: "ui"}} order_by: { data_issue_id: desc }){ 3 | data_issue_id 4 | severity 5 | issue_timestamp 6 | suspected_cause 7 | description 8 | user_id 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/monitor/getAutodiscoveryLogEntrys.graphql: -------------------------------------------------------------------------------- 1 | query getAutodiscoveryLogEntrys { 2 | log_data_issue (where: {source: {_eq: "autodiscovery"}} order_by: { data_issue_id: desc }){ 3 | data_issue_id 4 | user_id 5 | severity 6 | issue_timestamp 7 | suspected_cause 8 | description 9 | issue_mgm_id 10 | issue_dev_id 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/monitor/getDailyCheckLogEntrys.graphql: -------------------------------------------------------------------------------- 1 | query getDailyCheckLogEntrys { 2 | log_data_issue (where: {source: {_eq: "dailycheck"}} order_by: { data_issue_id: desc }){ 3 | data_issue_id 4 | severity 5 | issue_timestamp 6 | suspected_cause 7 | description 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/monitor/getImportLogEntrys.graphql: -------------------------------------------------------------------------------- 1 | query getImportLogEntrys { 2 | log_data_issue (where: {source: {_eq: "import"}} order_by: { data_issue_id: desc }){ 3 | data_issue_id 4 | severity 5 | issue_timestamp 6 | suspected_cause 7 | issue_mgm_id 8 | issue_dev_id 9 | import_id 10 | object_type 11 | object_name 12 | object_uid 13 | rule_uid 14 | rule_id 15 | description 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/monitor/getLogEntrys.graphql: -------------------------------------------------------------------------------- 1 | query getLogEntrys { 2 | log_data_issue (order_by: { data_issue_id: desc }){ 3 | data_issue_id 4 | source 5 | severity 6 | issue_timestamp 7 | suspected_cause 8 | issue_mgm_id 9 | issue_dev_id 10 | import_id 11 | object_type 12 | object_name 13 | object_uid 14 | rule_uid 15 | rule_id 16 | description 17 | user_id 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/monitor/getOpenAlerts.graphql: -------------------------------------------------------------------------------- 1 | query getOpenAlerts { 2 | alert (where: {ack_by: {_is_null: true}} order_by: { alert_id: desc }){ 3 | alert_id 4 | ref_log_id 5 | ref_alert_id 6 | source 7 | title 8 | description 9 | alert_mgm_id 10 | alert_dev_id 11 | alert_timestamp 12 | user_id 13 | json_data 14 | alert_code 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/monitor/getOwnerTickets.graphql: -------------------------------------------------------------------------------- 1 | 2 | query getOwnerTickets ($ownerId: Int!) { 3 | owner_ticket (where: {owner_id: {_eq: $ownerId}} order_by: { ticket_id: desc }){ 4 | owner: owner { 5 | id 6 | name 7 | app_id_external 8 | common_service_possible 9 | } 10 | ticket: ticket { 11 | ...ticketOverview 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/monitor/getUiLogEntrys.graphql: -------------------------------------------------------------------------------- 1 | query getUiLogEntrys ($user: Int!){ 2 | log_data_issue (where: {source: {_eq: "ui"}, user_id: {_eq: $user}} order_by: { data_issue_id: desc }){ 3 | data_issue_id 4 | severity 5 | issue_timestamp 6 | suspected_cause 7 | description 8 | user_id 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/monitor/subscribeAlertChanges.graphql: -------------------------------------------------------------------------------- 1 | subscription subscribeAlertChanges { 2 | alert (where: {ack_by: {_is_null: true}} order_by: { alert_id: desc }, limit: 1){ 3 | alert_id 4 | source 5 | alert_timestamp 6 | title 7 | description 8 | ack_by 9 | ack_timestamp 10 | alert_code 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/networkObject/fragments/networkObjectOverview.graphql: -------------------------------------------------------------------------------- 1 | fragment networkObjectOverview on object { 2 | obj_ip 3 | obj_ip_end 4 | obj_name 5 | obj_id 6 | type: stm_obj_typ { 7 | id: obj_typ_id 8 | name: obj_typ_name 9 | } 10 | obj_color_id 11 | } 12 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/networkService/fragments/networkServiceOverview.graphql: -------------------------------------------------------------------------------- 1 | fragment networkServiceOverview on service { 2 | svc_id 3 | svc_name 4 | svc_uid 5 | svc_port 6 | svc_port_end 7 | service_type: stm_svc_typ { 8 | id: svc_typ_id 9 | name: svc_typ_name 10 | } 11 | svc_color_id 12 | ip_proto_id 13 | protocol_name: stm_ip_proto { 14 | id: ip_proto_id 15 | name: ip_proto_name 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/networking/analyzePath.graphql: -------------------------------------------------------------------------------- 1 | query analyzePath($src: cidr!, $dst: cidr!) { 2 | devices_in_path(args: {c_destination: $src, c_source: $dst}) { 3 | id: dev_id 4 | name: dev_name 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/owner/deactivateOwner.graphql: -------------------------------------------------------------------------------- 1 | mutation deactivateOwner( 2 | $id: Int! 3 | ) { 4 | update_owner_by_pk( 5 | pk_columns: { id: $id } 6 | _set: { 7 | active: false 8 | }) { 9 | updatedId: id 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/owner/deleteAreaIpData.graphql: -------------------------------------------------------------------------------- 1 | mutation deleteAreaIpData( 2 | $id: bigint! 3 | ) { 4 | delete_owner_network(where: {owner_id: {_is_null: true}, id: {_eq: $id}}) { 5 | affected_rows 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/owner/deleteNetworkOwnership.graphql: -------------------------------------------------------------------------------- 1 | mutation deleteNetworkOwnership( 2 | $ownerId: Int! 3 | $id: bigint! 4 | ) { 5 | delete_owner_network(where: {owner_id: {_eq: $ownerId}, id: {_eq: $id}}) { 6 | affected_rows 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/owner/deleteOwner.graphql: -------------------------------------------------------------------------------- 1 | mutation deleteOwner($id: Int!) { 2 | delete_owner(where: {id: {_eq: $id}}) { 3 | affected_rows 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/owner/deleteRuleOwnership.graphql: -------------------------------------------------------------------------------- 1 | mutation deleteRuleOwnership( 2 | $ownerId: Int! 3 | $ruleMetadataId: bigint! 4 | ) { 5 | delete_rule_owner(where: {owner_id: {_eq: $ownerId}, rule_metadata_id: {_eq: $ruleMetadataId}}) { 6 | affected_rows 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/owner/fragments/ownerDetails.graphql: -------------------------------------------------------------------------------- 1 | fragment ownerDetails on owner { 2 | id 3 | name 4 | dn 5 | group_dn 6 | is_default 7 | tenant_id 8 | recert_interval 9 | app_id_external 10 | recert_check_params 11 | last_recert_check 12 | criticality 13 | active 14 | import_source 15 | common_service_possible 16 | } 17 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/owner/getEditableOwners.graphql: -------------------------------------------------------------------------------- 1 | 2 | query getEditableOwners ($appIds: [Int!]){ 3 | owner_list: owner (where: {id: {_in: $appIds}} order_by: { name: asc }){ 4 | ...ownerDetails 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/owner/getEditableOwnersWithConn.graphql: -------------------------------------------------------------------------------- 1 | 2 | query getEditableOwnersWithConn ($appIds: [Int!]){ 3 | owner_list: owner (where: {id: {_in: $appIds}} order_by: { name: asc }){ 4 | ...ownerDetails 5 | connections_aggregate { 6 | aggregate { count } 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/owner/getNetworkOwnerships.graphql: -------------------------------------------------------------------------------- 1 | 2 | query getNetworkOwnerships ($ownerId: Int!) { 3 | owner_network (where: {owner_id: {_eq: $ownerId}} order_by: { id: asc }){ 4 | id 5 | ip 6 | ip_end 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/owner/getOwnerId.graphql: -------------------------------------------------------------------------------- 1 | query getOwnerId($externalAppId: String) { 2 | owner_list: owner (where: {app_id_external:{_eq: $externalAppId}}){ 3 | id 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/owner/getOwners.graphql: -------------------------------------------------------------------------------- 1 | 2 | query getOwners { 3 | owner_list: owner (order_by: { name: asc }){ 4 | ...ownerDetails 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/owner/getOwnersForUser.graphql: -------------------------------------------------------------------------------- 1 | 2 | query getOwnersForUser ($userDn: String!) { 3 | owner (where: {dn: {_eq: $userDn}} order_by: { id: asc }){ 4 | id 5 | recert_interval 6 | name 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/owner/getOwnersFromGroups.graphql: -------------------------------------------------------------------------------- 1 | 2 | query getOwnersFromGroups ($groupDns: [String]!) { 3 | owner (where: {group_dn: {_in: $groupDns}} order_by: { id: asc }){ 4 | id 5 | recert_interval 6 | name 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/owner/getOwnersWithConn.graphql: -------------------------------------------------------------------------------- 1 | 2 | query getOwnersWithConn { 3 | owner_list: owner (where: {id: { _gt: 0 }} order_by: { name: asc }){ 4 | ...ownerDetails 5 | connections_aggregate { 6 | aggregate { count } 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/owner/getRuleOwnerships.graphql: -------------------------------------------------------------------------------- 1 | 2 | query getRuleOwnerships ($ownerId: Int!) { 3 | rule_owner (where: {owner_id: {_eq: $ownerId}} order_by: { rule_metadata_id: asc }){ 4 | rule_metadatum { 5 | rule_metadata_id 6 | dev_id 7 | rule_uid 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/owner/newNetworkOwnership.graphql: -------------------------------------------------------------------------------- 1 | mutation newNetworkOwnership( 2 | $ownerId: Int! 3 | $ip: cidr 4 | $ip_end: cidr 5 | ) { 6 | insert_owner_network(objects: { 7 | owner_id: $ownerId 8 | ip: $ip 9 | ip_end: $ip_end 10 | is_deleted: false 11 | nw_type: 10 12 | }) { 13 | returning { 14 | newIdLong: id 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/owner/newRuleOwnership.graphql: -------------------------------------------------------------------------------- 1 | mutation newRuleOwnership( 2 | $ownerId: Int! 3 | $ruleMetadataId: bigint! 4 | ) { 5 | insert_rule_owner(objects: { 6 | owner_id: $ownerId 7 | rule_metadata_id: $ruleMetadataId 8 | }) { 9 | returning { 10 | insertedIdLong: rule_metadata_id 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/owner/setDefaultOwner.graphql: -------------------------------------------------------------------------------- 1 | mutation setDefaultOwner( 2 | $id: Int! 3 | $isDefault: Boolean! 4 | ) { 5 | update_owner_by_pk( 6 | pk_columns: { id: $id } 7 | _set: { 8 | is_default: $isDefault 9 | }) { 10 | updatedId: id 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/owner/setOwnerLastCheck.graphql: -------------------------------------------------------------------------------- 1 | mutation setOwnerLastCheck( 2 | $id: Int! 3 | $lastRecertCheck: timestamp 4 | ) { 5 | update_owner_by_pk( 6 | pk_columns: { id: $id } 7 | _set: { 8 | last_recert_check: $lastRecertCheck 9 | }) { 10 | updatedId: id 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/recertification/addRecertEntries.graphql: -------------------------------------------------------------------------------- 1 | mutation addRecertEntries($recerts:[recertification_insert_input!]!) { 2 | insert_recertification( 3 | objects: $recerts 4 | ) { 5 | returning { 6 | newIdLong: id 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/recertification/clearOpenRecerts.graphql: -------------------------------------------------------------------------------- 1 | mutation clearOpenRecerts($ownerId: Int, $mgmId: Int) { 2 | delete_recertification( 3 | where: { 4 | owner_id: { _eq: $ownerId } 5 | rule_metadatum: { device: { mgm_id: { _eq: $mgmId } } } 6 | recert_date: { _is_null: true } 7 | } 8 | ) { 9 | returning { 10 | deletedIdLong: id 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/recertification/getOpenRecerts.graphql: -------------------------------------------------------------------------------- 1 | query getFutureRecertsForOwners($ownerId: Int!, $mgmId: Int!) { 2 | recert_get_one_owner_one_mgm( 3 | where: { recert_date: { _is_null: true } } 4 | args: { i_mgm_id: $mgmId, i_owner_id: $ownerId } 5 | ) { 6 | id 7 | rule_metadata_id 8 | rule_id 9 | ip_match 10 | owner_id 11 | user_dn 12 | recertified 13 | next_recert_date 14 | recert_date 15 | comment 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/recertification/getOpenRecertsForRule.graphql: -------------------------------------------------------------------------------- 1 | 2 | query getOpenRecertsForRule ($ruleId: bigint!) { 3 | recertification (where: {_and: [{rule_id: {_eq: $ruleId}}, {recert_date: {_is_null: true}}]}){ 4 | recertified 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/recertification/refreshViewRuleWithOwner.graphql: -------------------------------------------------------------------------------- 1 | query { 2 | refresh_view_rule_with_owner { 3 | id 4 | view_name 5 | refreshed_at 6 | status 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/report/addReportScheduleFileFormats.graphql: -------------------------------------------------------------------------------- 1 | mutation addReportScheduleFileTypes( 2 | $report_schedule_ids_formats: report_schedule_format_arr_rel_insert_input! # array of foreign key to output formats 3 | ) { 4 | insert_report_schedule( 5 | objects: { 6 | report_schedule_formats: $report_schedule_ids_formats 7 | } 8 | ) { 9 | returning { 10 | report_schedule_id 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/report/addReportTemplatePermission.graphql: -------------------------------------------------------------------------------- 1 | mutation addReportTemplatePermission($reportTemplateId: Int!, $userid: Int!) { 2 | insert_report_template_viewable_by_user( 3 | objects: { report_id: $reportTemplateId, uiuser_id: $userid } 4 | ) { 5 | returning { 6 | report_id 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/report/countReportSchedule.graphql: -------------------------------------------------------------------------------- 1 | mutation countReportSchedule($report_schedule_id: bigint!) { 2 | update_report_schedule( 3 | where: {report_schedule_id: {_eq: $report_schedule_id}}, 4 | _inc: {report_schedule_counter: 1} 5 | ) { 6 | affected_rows 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/report/deleteGeneratedReport.graphql: -------------------------------------------------------------------------------- 1 | mutation deleteGeneratedReport ($report_id : bigint!) { 2 | delete_report( 3 | where: {report_id: {_eq: $report_id}} 4 | ) { 5 | affected_rows 6 | } 7 | } -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/report/deleteReportSchedule.graphql: -------------------------------------------------------------------------------- 1 | mutation deleteReportSchedule ($report_schedule_id : bigint!) { 2 | delete_report_schedule( 3 | where: {report_schedule_id: {_eq: $report_schedule_id}} 4 | ) { 5 | affected_rows 6 | } 7 | } -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/report/deleteReportTemplate.graphql: -------------------------------------------------------------------------------- 1 | mutation deleteReportTemplate ($reportTemplateId : Int!) { 2 | delete_report_template( 3 | where: {report_template_id: {_eq: $reportTemplateId}} 4 | ) { 5 | affected_rows 6 | } 7 | } -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/report/getGeneratedReport.graphql: -------------------------------------------------------------------------------- 1 | query getGeneratedReport($report_id: bigint!) { 2 | report (where:{report_id: {_eq: $report_id}}) { 3 | report_id 4 | report_name 5 | report_start_time 6 | report_end_time 7 | uiuser { 8 | uiuser_username 9 | } 10 | report_template { 11 | report_template_name 12 | } 13 | report_csv 14 | report_pdf 15 | report_html 16 | report_json 17 | } 18 | } -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/report/getGeneratedReports.graphql: -------------------------------------------------------------------------------- 1 | query getGeneratedReports { 2 | report(order_by:{report_id:desc}) { 3 | report_id 4 | report_name 5 | report_start_time 6 | report_end_time 7 | report_type 8 | description 9 | uiuser { 10 | uiuser_username 11 | } 12 | report_template { 13 | report_template_name 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/report/getImportsToNotify.graphql: -------------------------------------------------------------------------------- 1 | query getImportsToNotify { 2 | import_control(where: { 3 | successful_import: {_eq: true} 4 | changes_found: {_eq: true} 5 | notification_done: {_eq: false} 6 | } order_by: {stop_time: asc}) { 7 | control_id 8 | stop_time 9 | mgm_id 10 | management{ 11 | mgm_name 12 | } 13 | security_relevant_changes_counter 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/report/getReportById.graphql: -------------------------------------------------------------------------------- 1 | query getReport($reportId: bigint!) { 2 | report(where: { report_id: { _eq: $reportId } }) { 3 | report_document 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/report/getReportsOverview.graphql: -------------------------------------------------------------------------------- 1 | query getReports($reportTemplateName: String) { 2 | report( 3 | where: { 4 | report_template: { report_template_name: { _ilike: $reportTemplateName } } 5 | } 6 | ) { 7 | report_id 8 | report_generation_time 9 | report_start_time 10 | report_end_time 11 | report_template_id 12 | report_template { 13 | report_filter 14 | report_template_name 15 | report_parameters 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/report/getRuleIdsOfImport.graphql: -------------------------------------------------------------------------------- 1 | query getRuleIdsOfImport($importId: bigint!, $devIds: [Int!]) { 2 | rule( 3 | where: { 4 | rule_last_seen: { _gte: $importId } 5 | rule_create: { _lte: $importId } 6 | dev_id: { _in: $devIds } 7 | } 8 | ) { 9 | rule_id 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/report/getUsageDataCount.graphql: -------------------------------------------------------------------------------- 1 | 2 | query getUsageDataCount($devId: Int) { 3 | rule_aggregate(where: {_and: [ {dev_id: {_eq: $devId } }, { rule_metadatum: {rule_last_hit: { _is_null: false } } } ] }) { 4 | aggregate { 5 | count 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/report/setImportsNotified.graphql: -------------------------------------------------------------------------------- 1 | mutation setImportsNotified($ids: [bigint!]) { 2 | update_import_control( 3 | where: { control_id: {_in: $ids} } 4 | _set: { 5 | notification_done: true 6 | }) { 7 | affected_rows 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/report/subscribeGeneratedReportsChanges.graphql: -------------------------------------------------------------------------------- 1 | subscription subscribeGeneratedReportsChanges { 2 | report(order_by:{report_id:desc}) { 3 | report_id 4 | report_name 5 | report_start_time 6 | report_end_time 7 | report_type 8 | description 9 | uiuser { 10 | uiuser_username 11 | } 12 | report_template { 13 | report_template_name 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/request/addCommentToApproval.graphql: -------------------------------------------------------------------------------- 1 | mutation addCommentToApproval( 2 | $approvalId: bigint! 3 | $commentId: bigint! 4 | ) { 5 | insert_request_approval_comment(objects: { 6 | approval_id: $approvalId 7 | comment_id: $commentId 8 | }) { 9 | returning { 10 | insertedIdLong: approval_id 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/request/addCommentToImplTask.graphql: -------------------------------------------------------------------------------- 1 | mutation addCommentToImplTask( 2 | $taskId: bigint! 3 | $commentId: bigint! 4 | ) { 5 | insert_request_impltask_comment(objects: { 6 | task_id: $taskId 7 | comment_id: $commentId 8 | }) { 9 | returning { 10 | insertedIdLong: task_id 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/request/addCommentToReqTask.graphql: -------------------------------------------------------------------------------- 1 | mutation addCommentToReqTask( 2 | $taskId: bigint! 3 | $commentId: bigint! 4 | ) { 5 | insert_request_reqtask_comment(objects: { 6 | task_id: $taskId 7 | comment_id: $commentId 8 | }) { 9 | returning { 10 | insertedIdLong: task_id 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/request/addCommentToTicket.graphql: -------------------------------------------------------------------------------- 1 | mutation addCommentToTicket( 2 | $ticketId: bigint! 3 | $commentId: bigint! 4 | ) { 5 | insert_request_ticket_comment(objects: { 6 | ticket_id: $ticketId 7 | comment_id: $commentId 8 | }) { 9 | returning { 10 | insertedIdLong: ticket_id 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/request/addExtState.graphql: -------------------------------------------------------------------------------- 1 | mutation addExtState( 2 | $name: String! 3 | $stateId: Int! 4 | ) { 5 | insert_request_ext_state(objects: { 6 | name: $name 7 | state_id: $stateId 8 | }) { 9 | returning { 10 | newId: id 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/request/addOwnerToReqTask.graphql: -------------------------------------------------------------------------------- 1 | mutation addOwnerToReqTask( 2 | $reqTaskId: bigint 3 | $ownerId: Int! 4 | ) { 5 | insert_reqtask_owner(objects: { 6 | reqtask_id: $reqTaskId 7 | owner_id: $ownerId 8 | }) { 9 | returning { 10 | newId: owner_id 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/request/addStateAction.graphql: -------------------------------------------------------------------------------- 1 | mutation addStateAction( 2 | $stateId: Int! 3 | $actionId: Int! 4 | ) { 5 | insert_request_state_action(objects: { 6 | state_id: $stateId 7 | action_id: $actionId 8 | }) { 9 | returning { 10 | newId: action_id 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/request/deleteAction.graphql: -------------------------------------------------------------------------------- 1 | mutation deleteAction($id: Int!) { 2 | delete_request_action(where: {id: {_eq: $id}}) { 3 | affected_rows 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/request/deleteImplementationElement.graphql: -------------------------------------------------------------------------------- 1 | mutation deleteImplementationElement ($id: bigint!) { 2 | delete_request_implelement_by_pk ( 3 | id: $id 4 | ) { 5 | deletedIdLong: id 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/request/deleteImplementationTask.graphql: -------------------------------------------------------------------------------- 1 | mutation deleteImplementationTask ($id: bigint!) { 2 | delete_request_impltask_by_pk ( 3 | id: $id 4 | ) { 5 | deletedIdLong: id 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/request/deleteRequestElement.graphql: -------------------------------------------------------------------------------- 1 | mutation deleteRequestElement ($id: bigint!) { 2 | delete_request_reqelement_by_pk ( 3 | id: $id 4 | ) { 5 | deletedIdLong: id 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/request/deleteRequestTask.graphql: -------------------------------------------------------------------------------- 1 | mutation deleteRequestTask ($id: bigint!) { 2 | delete_request_reqtask_by_pk ( 3 | id: $id 4 | ) { 5 | deletedIdLong: id 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/request/deleteState.graphql: -------------------------------------------------------------------------------- 1 | mutation deleteState($id: Int!) { 2 | delete_request_state(where: {id: {_eq: $id}}) { 3 | affected_rows 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/request/fragments/commentDetails.graphql: -------------------------------------------------------------------------------- 1 | fragment commentDetails on request_comment { 2 | id 3 | ref_id 4 | scope 5 | creation_date 6 | creator: uiuser { 7 | uiuser_id 8 | uiuser_username 9 | } 10 | comment_text 11 | } 12 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/request/fragments/reqTaskOverview.graphql: -------------------------------------------------------------------------------- 1 | fragment reqTaskOverview on request_reqtask { 2 | id 3 | ticket_id 4 | title 5 | task_number 6 | state_id 7 | task_type 8 | request_action 9 | rule_action 10 | rule_tracking 11 | start 12 | stop 13 | reason 14 | additional_info 15 | on_management: management { 16 | id: mgm_id 17 | name: mgm_name 18 | } 19 | comments: reqtask_comments { 20 | comment: comment { 21 | comment_text 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/request/fragments/ticketOverview.graphql: -------------------------------------------------------------------------------- 1 | fragment ticketOverview on request_ticket { 2 | id 3 | title 4 | date_created 5 | date_completed 6 | state_id 7 | requester: uiuser { 8 | uiuser_username 9 | } 10 | reason 11 | external_ticket_id 12 | external_ticket_source 13 | ticket_deadline 14 | ticket_priority 15 | reqtasks: reqtasks { 16 | ...reqTaskOverview 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/request/getActions.graphql: -------------------------------------------------------------------------------- 1 | 2 | query getActions { 3 | action_list: request_action (order_by: { id: asc }){ 4 | id 5 | name 6 | action_type 7 | scope 8 | task_type 9 | phase 10 | event 11 | button_text 12 | external_parameters 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/request/getExtStates.graphql: -------------------------------------------------------------------------------- 1 | 2 | query getExtStates { 3 | request_ext_state (order_by: { id: asc }){ 4 | id 5 | name 6 | state_id 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/request/getFullTickets.graphql: -------------------------------------------------------------------------------- 1 | query getFullTickets($fromState: Int!, $toState: Int!) { 2 | request_ticket(where: {_or: [{_and: [{state_id: {_gte: $fromState}}, {state_id: {_lt: $toState}}]}, {reqtasks: {_and: [{state_id: {_gte: $fromState}}, {state_id: {_lt: $toState}}]}}]}, order_by: {id: desc}) { 3 | ...ticketDetails 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/request/getStates.graphql: -------------------------------------------------------------------------------- 1 | 2 | query getStates { 3 | state_list: request_state (order_by: { id: asc }){ 4 | id 5 | name 6 | actions: state_actions { 7 | action: action { 8 | id 9 | name 10 | action_type 11 | scope 12 | task_type 13 | phase 14 | event 15 | button_text 16 | external_parameters 17 | } 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/request/getTicketById.graphql: -------------------------------------------------------------------------------- 1 | query getTicketById($id: bigint!) { 2 | request_ticket_by_pk(id: $id) { 3 | ...ticketDetails 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/request/getTickets.graphql: -------------------------------------------------------------------------------- 1 | query getTickets($fromState: Int!, $toState: Int!) { 2 | request_ticket(where: {_or: [{_and: [{state_id: {_gte: $fromState}}, {state_id: {_lt: $toState}}]}, {reqtasks: {_and: [{state_id: {_gte: $fromState}}, {state_id: {_lt: $toState}}]}}]}, order_by: {id: desc}) { 3 | ...ticketDetailsReqTaskOverview 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/request/newComment.graphql: -------------------------------------------------------------------------------- 1 | mutation newComment( 2 | $refId: bigint 3 | $scope: String 4 | $creationDate: timestamp 5 | $creator: Int 6 | $text: String 7 | ) { 8 | insert_request_comment(objects: { 9 | ref_id: $refId 10 | scope: $scope 11 | creation_date: $creationDate 12 | creator_id: $creator 13 | comment_text: $text 14 | }) { 15 | returning { 16 | newIdLong: id 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/request/removeExtState.graphql: -------------------------------------------------------------------------------- 1 | mutation removeExtState($id: Int!) { 2 | delete_request_ext_state_by_pk ( 3 | id: $id 4 | ) { 5 | deletedId: id 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/request/removeOwnerFromReqTask.graphql: -------------------------------------------------------------------------------- 1 | mutation removeOwnerFromReqTask( 2 | $reqTaskId: bigint 3 | $ownerId: Int! 4 | ) { 5 | delete_reqtask_owner(where: {owner_id: {_eq: $ownerId}, reqtask_id: {_eq: $reqTaskId}}) { 6 | affected_rows 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/request/removeStateAction.graphql: -------------------------------------------------------------------------------- 1 | mutation removeStateAction( 2 | $stateId: Int! 3 | $actionId: Int! 4 | ) { 5 | delete_request_state_action(where: {_and: [{state_id: {_eq: $stateId}},{action_id: {_eq: $actionId}}]}) { 6 | affected_rows 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/request/subscribeTicketStateChanges.graphql: -------------------------------------------------------------------------------- 1 | subscription subscribeTicketStateChanges ($id: bigint!){ 2 | request_ticket(where: { id: {_eq: $id} }, limit:1) { 3 | id 4 | date_created 5 | date_completed 6 | state_id 7 | requester: uiuser { 8 | uiuser_id 9 | uiuser_username 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/request/updateApproval.graphql: -------------------------------------------------------------------------------- 1 | mutation updateApproval( 2 | $id: bigint! 3 | $state: Int! 4 | $approvalDate: timestamp 5 | $approver: String 6 | $assignedGroup: String 7 | ) { 8 | update_request_approval_by_pk( 9 | pk_columns: { id: $id } 10 | _set: { 11 | state_id: $state 12 | approval_date: $approvalDate 13 | approver: $approver 14 | assigned_group: $assignedGroup 15 | }) { 16 | UpdatedIdLong: id 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/request/updateRequestTaskAdditionalInfo.graphql: -------------------------------------------------------------------------------- 1 | mutation updateRequestTaskAdditionalInfo( 2 | $id: bigint! 3 | $additionalInfo: String 4 | ) { 5 | update_request_reqtask_by_pk( 6 | pk_columns: { id: $id } 7 | _set: { 8 | additional_info: $additionalInfo 9 | }) { 10 | UpdatedIdLong: id 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/request/updateTicket.graphql: -------------------------------------------------------------------------------- 1 | mutation updateTicket( 2 | $id: bigint! 3 | $title: String! 4 | $reason: String 5 | $state: Int 6 | $deadline: timestamp 7 | $priority: Int 8 | ) { 9 | update_request_ticket_by_pk( 10 | pk_columns: { id: $id } 11 | _set: { 12 | title: $title 13 | reason: $reason 14 | state_id: $state 15 | ticket_deadline: $deadline 16 | ticket_priority: $priority 17 | }) { 18 | UpdatedIdLong: id 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/request/updateTicketState.graphql: -------------------------------------------------------------------------------- 1 | mutation updateTicketState( 2 | $id: bigint! 3 | $state: Int 4 | $closed: timestamp 5 | $deadline: timestamp 6 | $priority: Int 7 | ) { 8 | update_request_ticket_by_pk( 9 | pk_columns: { id: $id } 10 | _set: { 11 | state_id: $state 12 | date_completed: $closed 13 | ticket_deadline: $deadline 14 | ticket_priority: $priority 15 | }) { 16 | UpdatedIdLong: id 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/request/upsertState.graphql: -------------------------------------------------------------------------------- 1 | mutation upsertState($id: Int!, $name: String!) { 2 | insert_request_state( 3 | objects: { 4 | id: $id 5 | name: $name 6 | }, 7 | on_conflict: { 8 | constraint: state_pkey , 9 | update_columns: [name] 10 | } 11 | ) { 12 | returning { 13 | id: id 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/rule/getRuleByUid.graphql: -------------------------------------------------------------------------------- 1 | query getRuleByUid( 2 | $deviceId: Int! 3 | $ruleUid: String 4 | ) { 5 | rule( 6 | where: { 7 | dev_id: { _eq: $deviceId } 8 | rule_uid: { _eq: $ruleUid } 9 | active: { _eq: true } 10 | access_rule: { _eq: true } 11 | } 12 | ) { 13 | rule_id: rule_id 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/stmTables/getIpProtocols.graphql: -------------------------------------------------------------------------------- 1 | 2 | query getIpProtocols { 3 | stm_ip_proto { 4 | ip_proto_id 5 | ip_proto_name 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/stmTables/getRuleActions.graphql: -------------------------------------------------------------------------------- 1 | 2 | query getRuleActions { 3 | stm_action { 4 | action_id 5 | action_name 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/stmTables/getTracking.graphql: -------------------------------------------------------------------------------- 1 | 2 | query getTracking { 3 | stm_track { 4 | track_id 5 | track_name 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/APIcalls/user/fragments/userOverview.graphql: -------------------------------------------------------------------------------- 1 | fragment userOverview on usr { 2 | user_id 3 | user_uid 4 | user_name 5 | stm_usr_typ { 6 | usr_typ_name 7 | } 8 | } -------------------------------------------------------------------------------- /roles/lib/files/FWO.Api.Client/ApiConstants.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace FWO.Api.Client 8 | { 9 | internal class ApiConstants 10 | { 11 | public const bool UseSystemTextJsonSerializer = false; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Basics/BooleanExtensions.cs: -------------------------------------------------------------------------------- 1 | namespace FWO.Basics 2 | { 3 | public static class BooleanExtensions 4 | { 5 | public static string ShowAsHtml(this bool boolVal) 6 | { 7 | // shows hook (true) or x (false) in UI 8 | return boolVal ? "\u2714" : "\u2716"; 9 | } 10 | } 11 | 12 | } 13 | 14 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Basics/FWO.Basics.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | net8.0 5 | enable 6 | enable 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Basics/JwtConstants.cs: -------------------------------------------------------------------------------- 1 | namespace FWO.Basics 2 | { 3 | public class JwtConstants 4 | { 5 | public const string Issuer = "FWO Middleware Module"; 6 | public const string Audience = "FWO"; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Basics/TestDataGeneration/TestDataGenerationResult.cs: -------------------------------------------------------------------------------- 1 | namespace FWO.Basics.TestDataGeneration 2 | { 3 | public class TestDataGenerationResult 4 | { 5 | public bool ProcessSuccessful { get; set; } 6 | public T? SingleInstance { get; set; } 7 | public List? Collection { get; set; } 8 | public T? SubjectUnderTest { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Config.File/FWO.Config.File.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | enable 6 | enable 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Data/Direction.cs: -------------------------------------------------------------------------------- 1 | namespace FWO.Data 2 | { 3 | public enum Direction 4 | { 5 | Source, 6 | Destination 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Data/Group.cs: -------------------------------------------------------------------------------- 1 | using System.Text.Json.Serialization; 2 | using Newtonsoft.Json; 3 | 4 | namespace FWO.Data 5 | { 6 | public class Group 7 | { 8 | [JsonProperty("id"), JsonPropertyName("id")] 9 | public long Id { get; set; } 10 | 11 | [JsonProperty("byId"), JsonPropertyName("byId")] 12 | public T? Object { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Data/GroupFlat.cs: -------------------------------------------------------------------------------- 1 | using System.Text.Json.Serialization; 2 | using Newtonsoft.Json; 3 | 4 | namespace FWO.Data 5 | { 6 | public class GroupFlat 7 | { 8 | [JsonProperty("flat_id"), JsonPropertyName("flat_id")] 9 | public long Id { get; set; } 10 | 11 | [JsonProperty("byFlatId"), JsonPropertyName("byFlatId")] 12 | public T? Object { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Data/ImpChangeNotificationType.cs: -------------------------------------------------------------------------------- 1 |  2 | namespace FWO.Data 3 | { 4 | public enum ImpChangeNotificationType 5 | { 6 | SimpleText = 0, 7 | HtmlInBody = 1, 8 | PdfAsAttachment = 10, 9 | HtmlAsAttachment = 11, 10 | // CsvAsAttachment = 12, // Currently not implemented 11 | JsonAsAttachment = 13 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Data/IpProtocol.cs: -------------------------------------------------------------------------------- 1 | using System.Text.Json.Serialization; 2 | using Newtonsoft.Json; 3 | 4 | namespace FWO.Data 5 | { 6 | public class IpProtocol 7 | { 8 | [JsonProperty("ip_proto_id"), JsonPropertyName("ip_proto_id")] 9 | public int Id { get; set; } 10 | 11 | [JsonProperty("ip_proto_name"), JsonPropertyName("ip_proto_name")] 12 | public string Name { get; set; } = ""; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Data/NetworkObjectType.cs: -------------------------------------------------------------------------------- 1 | using System.Text.Json.Serialization; 2 | using Newtonsoft.Json; 3 | 4 | namespace FWO.Data 5 | { 6 | public class NetworkObjectType 7 | { 8 | [JsonProperty("name"), JsonPropertyName("name")] 9 | public string Name { get; set; } = ""; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Data/NetworkObjectWrapper.cs: -------------------------------------------------------------------------------- 1 | using System.Text.Json.Serialization; 2 | using Newtonsoft.Json; 3 | 4 | namespace FWO.Data 5 | { 6 | public class NetworkObjectWrapper 7 | { 8 | [JsonProperty("object"), JsonPropertyName("object")] 9 | public NetworkObject Content { get; set; } = new NetworkObject(){}; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Data/NetworkServiceType.cs: -------------------------------------------------------------------------------- 1 | using System.Text.Json.Serialization; 2 | using Newtonsoft.Json; 3 | 4 | namespace FWO.Data 5 | { 6 | public class NetworkServiceType 7 | { 8 | [JsonProperty("name"), JsonPropertyName("name")] 9 | public string Name { get; set; } = ""; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Data/NetworkUserType.cs: -------------------------------------------------------------------------------- 1 | using System.Text.Json.Serialization; 2 | using Newtonsoft.Json; 3 | 4 | namespace FWO.Data 5 | { 6 | public class NetworkUserType 7 | { 8 | [JsonProperty("usr_typ_name"), JsonPropertyName("usr_typ_name")] 9 | public string Name { get; set; } = ""; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Data/NetworkZone.cs: -------------------------------------------------------------------------------- 1 | using System.Net; 2 | using System.Text.Json.Serialization; 3 | using NetTools; 4 | using Newtonsoft.Json; 5 | 6 | namespace FWO.Data 7 | { 8 | public class NetworkZone 9 | { 10 | [JsonProperty("zone_id"), JsonPropertyName("zone_id")] 11 | public int Id { get; set; } 12 | 13 | [JsonProperty("zone_name"), JsonPropertyName("zone_name")] 14 | public string Name { get; set; } = ""; 15 | 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Data/OwnerIdModel.cs: -------------------------------------------------------------------------------- 1 | using Newtonsoft.Json; 2 | using System.Text.Json.Serialization; 3 | 4 | namespace FWO.Data 5 | { 6 | public class OwnerIdModel 7 | { 8 | [JsonProperty("id"), JsonPropertyName("id")] 9 | public int Id { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Data/Recertification.cs: -------------------------------------------------------------------------------- 1 | using System.Text.Json.Serialization; 2 | using Newtonsoft.Json; 3 | 4 | namespace FWO.Data 5 | { 6 | public class Recertification : RecertificationBase 7 | { 8 | [JsonProperty("owner"), JsonPropertyName("owner")] 9 | public FwoOwner? FwoOwner { get; set; } = new FwoOwner(); 10 | 11 | [JsonProperty("user_dn"), JsonPropertyName("user_dn")] 12 | public string UserDn { get; set; } = ""; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Data/Report/UnusedFilter.cs: -------------------------------------------------------------------------------- 1 | namespace FWO.Data.Report 2 | { 3 | public class UnusedFilter 4 | { 5 | public int UnusedForDays = int.MaxValue; 6 | public int CreationTolerance = 0; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Data/RuleAction.cs: -------------------------------------------------------------------------------- 1 | using System.Text.Json.Serialization; 2 | using Newtonsoft.Json; 3 | 4 | namespace FWO.Data 5 | { 6 | public class RuleAction 7 | { 8 | [JsonProperty("action_id"), JsonPropertyName("action_id")] 9 | public int Id { get; set; } 10 | 11 | [JsonProperty("action_name"), JsonPropertyName("action_name")] 12 | public string Name { get; set; } = ""; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Data/TicketId.cs: -------------------------------------------------------------------------------- 1 | using System.Text.Json.Serialization; 2 | using Newtonsoft.Json; 3 | 4 | namespace FWO.Data 5 | { 6 | public class TicketId 7 | { 8 | [JsonProperty("ticket_id"), JsonPropertyName("ticket_id")] 9 | public long Id { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Data/TimeWrapper.cs: -------------------------------------------------------------------------------- 1 | using System.Text.Json.Serialization; 2 | using Newtonsoft.Json; 3 | 4 | namespace FWO.Data 5 | { 6 | public class TimeWrapper 7 | { 8 | [JsonProperty("time"), JsonPropertyName("time")] 9 | public DateTime Time { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Data/Tracking.cs: -------------------------------------------------------------------------------- 1 | using System.Text.Json.Serialization; 2 | using Newtonsoft.Json; 3 | 4 | namespace FWO.Data 5 | { 6 | public class Tracking 7 | { 8 | [JsonProperty("track_id"), JsonPropertyName("track_id")] 9 | public int Id { get; set; } 10 | 11 | [JsonProperty("track_name"), JsonPropertyName("track_name")] 12 | public string Name { get; set; } = ""; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Data/UserWrapper.cs: -------------------------------------------------------------------------------- 1 | using System.Text.Json.Serialization; 2 | using Newtonsoft.Json; 3 | 4 | namespace FWO.Data 5 | { 6 | public class UserWrapper 7 | { 8 | [JsonProperty("usr"), JsonPropertyName("usr")] 9 | public NetworkUser Content { get; set; } = new NetworkUser(); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Data/Workflow/OwnerTicket.cs: -------------------------------------------------------------------------------- 1 | using Newtonsoft.Json; 2 | using System.Text.Json.Serialization; 3 | 4 | namespace FWO.Data.Workflow 5 | { 6 | public class OwnerTicket 7 | { 8 | [JsonProperty("owner"), JsonPropertyName("owner")] 9 | public FwoOwner Owner { get; set; } = new(); 10 | 11 | [JsonProperty("ticket"), JsonPropertyName("ticket")] 12 | public WfTicket Ticket { get; set; } = new(); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Data/Workflow/WfApprovalWriter.cs: -------------------------------------------------------------------------------- 1 | namespace FWO.Data.Workflow 2 | { 3 | public class WfApprovalWriter : WfApprovalBase 4 | { 5 | public WfApprovalWriter() 6 | { } 7 | 8 | public WfApprovalWriter(WfApproval approval) : base(approval) 9 | { 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Data/Workflow/WfOwnerWriter.cs: -------------------------------------------------------------------------------- 1 | using System.Text.Json.Serialization; 2 | using Newtonsoft.Json; 3 | 4 | namespace FWO.Data.Workflow 5 | { 6 | public class WfOwnerWriter 7 | { 8 | [JsonProperty("owner_id"), JsonPropertyName("owner_id")] 9 | public int? OwnerId { get; set; } 10 | 11 | public WfOwnerWriter() 12 | {} 13 | 14 | public WfOwnerWriter(FwoOwner owner) 15 | { 16 | OwnerId = owner.Id; 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Encryption/FWO.Encryption.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | enable 6 | enable 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Logging/FWO.Logging.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | enable 6 | enable 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Recert/FWO.Recert.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | enable 6 | enable 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Report.Filter/Ast/AstKind.cs: -------------------------------------------------------------------------------- 1 | namespace FWO.Report.Filter.Ast 2 | { 3 | public enum AstKind 4 | { 5 | Filter, 6 | Operator, 7 | FilterName, 8 | Text, 9 | Connector, 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Report.Filter/Ast/AstNode.cs: -------------------------------------------------------------------------------- 1 | using FWO.Basics; 2 | 3 | 4 | namespace FWO.Report.Filter.Ast 5 | { 6 | public abstract class AstNode 7 | { 8 | public abstract void Extract(ref DynGraphqlQuery query, ReportType? reportType); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Report.Filter/Exceptions/FilterException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace FWO.Report.Filter.Exceptions 6 | { 7 | public class FilterException : Exception 8 | { 9 | public readonly Range ErrorPosition; 10 | 11 | public FilterException(string message, Range errorPosition) : base(message) 12 | { 13 | ErrorPosition = errorPosition; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Report.Filter/Exceptions/SemanticException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace FWO.Report.Filter.Exceptions 6 | { 7 | public class SemanticException : FilterException 8 | { 9 | public SemanticException(string message, Range errorPosition) : base(message, errorPosition) 10 | { 11 | 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Report.Filter/Exceptions/SyntaxException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace FWO.Report.Filter.Exceptions 6 | { 7 | public class SyntaxException : FilterException 8 | { 9 | public SyntaxException(string message, Range errorPosition) : base(message, errorPosition) 10 | { 11 | 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Report/Data/ToCHeader.cs: -------------------------------------------------------------------------------- 1 | namespace FWO.Report.Data 2 | { 3 | public class ToCHeader(string title, string? id = default) 4 | { 5 | public string Title { get; set; } = title; 6 | public string? Id { get; set; } = id; 7 | public List Items = []; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Report/Data/ToCItem.cs: -------------------------------------------------------------------------------- 1 | namespace FWO.Report.Data 2 | { 3 | public class ToCItem(string title, string? id = default) 4 | { 5 | public string Title { get; set; } = title; 6 | public string? Id { get; set; } = id; 7 | public List SubItems = []; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Report/PaperFormat.cs: -------------------------------------------------------------------------------- 1 | namespace FWO.Report 2 | { 3 | public enum PaperFormat 4 | { 5 | A0, 6 | A1, 7 | A2, 8 | A3, 9 | A4, 10 | A5, 11 | A6, 12 | Letter, 13 | Legal, 14 | Tabloid, 15 | Ledger, 16 | Custom 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Services/EventMediator/Events/CollectionChangedEvent.cs: -------------------------------------------------------------------------------- 1 | using FWO.Services.EventMediator.Interfaces; 2 | 3 | namespace FWO.Services.EventMediator.Events 4 | { 5 | public class CollectionChangedEvent(CollectionChangedEventArgs? eventArgs = default) : IEvent 6 | { 7 | public IEventArgs? EventArgs { get; set; } = eventArgs; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Services/EventMediator/Events/CollectionChangedEventArgs.cs: -------------------------------------------------------------------------------- 1 | using FWO.Services.EventMediator.Interfaces; 2 | 3 | namespace FWO.Services.EventMediator.Events 4 | { 5 | public class CollectionChangedEventArgs(IEnumerable collection) : IEventArgs 6 | { 7 | IEnumerable Collection { get; } = collection; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Services/EventMediator/Interfaces/IEvent.cs: -------------------------------------------------------------------------------- 1 | namespace FWO.Services.EventMediator.Interfaces 2 | { 3 | public interface IEvent 4 | { 5 | public IEventArgs? EventArgs { get; set; } 6 | } 7 | } 8 | 9 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Services/EventMediator/Interfaces/IEventArgs.cs: -------------------------------------------------------------------------------- 1 | namespace FWO.Services.EventMediator.Interfaces 2 | { 3 | public interface IEventArgs { } 4 | } 5 | -------------------------------------------------------------------------------- /roles/lib/files/FWO.Services/EventMediator/Interfaces/IEventMediator.cs: -------------------------------------------------------------------------------- 1 | namespace FWO.Services.EventMediator.Interfaces 2 | { 3 | public interface IEventMediator 4 | { 5 | void Subscribe(string name, Action handler) where TEvent : class, IEvent; 6 | void Publish(string name, TEvent @event) where TEvent : class, IEvent; 7 | bool Unsubscribe(string name) where TEvent : class, IEvent; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /roles/middleware/files/FWO.Middleware.Server/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json.schemastore.org/launchsettings.json", 3 | "profiles": { 4 | "FWO.Middleware": { 5 | "commandName": "Project", 6 | "dotnetRunMessages": "true", 7 | "launchBrowser": true, 8 | "launchUrl": "swagger", 9 | "applicationUrl": "http://localhost:8880", 10 | "environmentVariables": { 11 | "ASPNETCORE_ENVIRONMENT": "Development" 12 | } 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /roles/middleware/files/FWO.Middleware.Server/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /roles/middleware/files/FWO.Middleware.Server/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | }, 9 | "AllowedHosts": "*" 10 | } 11 | -------------------------------------------------------------------------------- /roles/middleware/files/get_pg_version.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | ver=$(psql --version | cut -d " " -f 3) 3 | major_ver=$(echo "$ver" | cut -d "." -f 1) 4 | minor_ver=$(echo "$ver" | cut -d "." -f 2) 5 | # return only major version from pg 10 onwards 6 | if [ $((major_ver * 1)) -gt 9 ] 7 | then 8 | ver=$major_ver 9 | fi 10 | echo -n "$ver" 11 | -------------------------------------------------------------------------------- /roles/middleware/files/jwt_test_public_key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PUBLIC KEY----- 2 | MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ILANCqxJZazBoskdWdx 3 | m0Rvyb6iYt1eiecep5eCHbq+Hmq4NJpJkIcLadzd2m/n0q0VkOAwrpN499RtZxZ4 4 | HKgheD9Z/uzrgIKDQFmnd9KygYjIAubQXxC/CFgv79CfG9+LIyKCu4oNXueoYJnS 5 | XjzV9NNBF05bVj2zZsJneZlujQKNt7xMXhFo7uWpbAx8qYP1n1RjBVTyIaKc4dDB 6 | 90bNhpSBz/L3/09h4+r26xZloZRhzfMrplUWBVYyzH2g/b0VOjXS2Coe8HV10Rt8 7 | zecBrz/JYbf9HVY7g3sWTueyd5+XdCWkIbZy0A3yiO5jCltbZWl86BjzUsFwzS10 8 | aQIDAQAB 9 | -----END PUBLIC KEY----- -------------------------------------------------------------------------------- /roles/middleware/tasks/upgrade/5.5.1.yml: -------------------------------------------------------------------------------- 1 | 2 | # - name: stop old middleware server 3 | # systemd: 4 | # name: "{{ middleware_service_name }}" 5 | # enabled: false 6 | # status: stopped 7 | # become: true 8 | 9 | # - name: remove debugging middleware server 10 | # file: 11 | # path: "/usr/local/fworch/middleware/files/FWO.Middleware.Server/bin/Debug" 12 | # state: absent 13 | # become: true 14 | -------------------------------------------------------------------------------- /roles/middleware/tasks/upgrade/5.5.5.yml: -------------------------------------------------------------------------------- 1 | - name: set ldap tenant level to 5 2 | postgresql_query: 3 | db: "{{ fworch_db_name }}" 4 | query: > 5 | DO $do$ BEGIN IF EXISTS 6 | (SELECT * FROM ldap_connection 7 | WHERE ldap_server='{{ openldap_server }}') 8 | THEN UPDATE ldap_connection 9 | SET ldap_tenant_level=5; 10 | END IF; END $do$ 11 | become: true 12 | become_user: postgres 13 | -------------------------------------------------------------------------------- /roles/middleware/templates/ldif_files/tree_level_0.ldif.j2: -------------------------------------------------------------------------------- 1 | dn: {{ openldap_path }} 2 | changetype: {{ ldif_changetype }} 3 | {% if ldif_changetype != 'delete' -%} 4 | objectClass: dcObject 5 | objectClass: organization 6 | o: root of {{ product_name }} internal ldap 7 | {%- endif %} 8 | -------------------------------------------------------------------------------- /roles/middleware/templates/ldif_files/tree_level_2.ldif.j2: -------------------------------------------------------------------------------- 1 | dn: ou=systemuser,ou=user,{{ openldap_path }} 2 | changetype: {{ ldif_changetype }} 3 | {% if ldif_changetype != 'delete' -%} 4 | objectClass: top 5 | objectClass: organizationalUnit 6 | ou: systemuser 7 | {%- endif %} 8 | 9 | 10 | dn: ou=operator,ou=user,{{ openldap_path }} 11 | changetype: {{ ldif_changetype }} 12 | {% if ldif_changetype != 'delete' -%} 13 | objectClass: top 14 | objectClass: organizationalUnit 15 | ou: operator 16 | {%- endif %} 17 | -------------------------------------------------------------------------------- /roles/middleware/templates/ldif_files/tree_tenant0.ldif.j2: -------------------------------------------------------------------------------- 1 | dn: ou=tenant0,ou=operator,ou=user,{{ openldap_path }} 2 | changetype: {{ ldif_changetype }} 3 | {% if ldif_changetype != 'delete' -%} 4 | objectClass: top 5 | objectClass: organizationalUnit 6 | ou: tenant0 7 | {%- endif %} 8 | -------------------------------------------------------------------------------- /roles/middleware/templates/upgrade/5.1.1.ldif.j2: -------------------------------------------------------------------------------- 1 | # test 2 | 3 | dn: uid=admin2,ou=tenant0,ou=operator,ou=user,{{ openldap_path }} 4 | changetype: add 5 | objectClass: top 6 | objectclass: inetorgperson 7 | cn: admin2 8 | sn: admin2 9 | -------------------------------------------------------------------------------- /roles/middleware/templates/upgrade/5.1.2.ldif.j2: -------------------------------------------------------------------------------- 1 | # test 2 | 3 | dn: cn=admin,ou=role,{{ openldap_path }} 4 | changetype: modify 5 | add: uniquemember 6 | uniquemember: uid=admin2,ou=tenant0,ou=operator,ou=user,dc=fworch,dc=internal 7 | -------------------------------------------------------------------------------- /roles/middleware/templates/upgrade/5.2.2.1.ldif.j2: -------------------------------------------------------------------------------- 1 | 2 | dn: cn=anonymous,ou=role,{{ openldap_path }} 3 | changetype: modify 4 | replace: description 5 | description: T0001 6 | 7 | -------------------------------------------------------------------------------- /roles/middleware/templates/upgrade/5.2.2.10.ldif.j2: -------------------------------------------------------------------------------- 1 | 2 | dn: cn=fw-admin,ou=role,{{ openldap_path }} 3 | changetype: modify 4 | replace: description 5 | description: T0010 6 | 7 | -------------------------------------------------------------------------------- /roles/middleware/templates/upgrade/5.2.2.11.ldif.j2: -------------------------------------------------------------------------------- 1 | 2 | dn: cn=admin,ou=role,{{ openldap_path }} 3 | changetype: modify 4 | replace: description 5 | description: T0011 6 | 7 | -------------------------------------------------------------------------------- /roles/middleware/templates/upgrade/5.2.2.2.ldif.j2: -------------------------------------------------------------------------------- 1 | 2 | dn: cn=middleware-server,ou=role,{{ openldap_path }} 3 | changetype: modify 4 | replace: description 5 | description: T0002 6 | 7 | -------------------------------------------------------------------------------- /roles/middleware/templates/upgrade/5.2.2.3.ldif.j2: -------------------------------------------------------------------------------- 1 | 2 | dn: cn=reporter,ou=role,{{ openldap_path }} 3 | changetype: modify 4 | replace: description 5 | description: T0003 6 | 7 | -------------------------------------------------------------------------------- /roles/middleware/templates/upgrade/5.2.2.4.ldif.j2: -------------------------------------------------------------------------------- 1 | 2 | dn: cn=reporter-viewall,ou=role,{{ openldap_path }} 3 | changetype: modify 4 | replace: description 5 | description: T0004 6 | 7 | -------------------------------------------------------------------------------- /roles/middleware/templates/upgrade/5.2.2.5.ldif.j2: -------------------------------------------------------------------------------- 1 | 2 | dn: cn=importer,ou=role,{{ openldap_path }} 3 | changetype: modify 4 | replace: description 5 | description: T0005 6 | 7 | -------------------------------------------------------------------------------- /roles/middleware/templates/upgrade/5.2.2.6.ldif.j2: -------------------------------------------------------------------------------- 1 | 2 | dn: cn=dbbackup,ou=role,{{ openldap_path }} 3 | changetype: modify 4 | replace: description 5 | description: T0006 6 | 7 | -------------------------------------------------------------------------------- /roles/middleware/templates/upgrade/5.2.2.7.ldif.j2: -------------------------------------------------------------------------------- 1 | 2 | dn: cn=auditor,ou=role,{{ openldap_path }} 3 | changetype: modify 4 | replace: description 5 | description: T0007 6 | 7 | -------------------------------------------------------------------------------- /roles/middleware/templates/upgrade/5.2.2.8.ldif.j2: -------------------------------------------------------------------------------- 1 | 2 | dn: cn=workflow-user,ou=role,{{ openldap_path }} 3 | changetype: modify 4 | replace: description 5 | description: T0008 6 | 7 | -------------------------------------------------------------------------------- /roles/middleware/templates/upgrade/5.2.2.9.ldif.j2: -------------------------------------------------------------------------------- 1 | 2 | dn: cn=workflow-admin,ou=role,{{ openldap_path }} 3 | changetype: modify 4 | replace: description 5 | description: T0009 6 | 7 | -------------------------------------------------------------------------------- /roles/middleware/templates/upgrade/5.2.5.ldif.j2: -------------------------------------------------------------------------------- 1 | # add new role recertifier 2 | 3 | dn: cn=recertifier,ou=role,{{ openldap_path }} 4 | changetype: add 5 | objectClass: top 6 | objectClass: groupofuniquenames 7 | cn: recertifier 8 | uniqueMember: 9 | description: T0012 10 | -------------------------------------------------------------------------------- /roles/middleware/templates/upgrade/5.4.1.ldif.j2: -------------------------------------------------------------------------------- 1 | 2 | dn: uid=importer,ou=tenant0,ou=operator,ou=user,{{ openldap_path }} 3 | changetype: add 4 | objectClass: top 5 | objectclass: inetorgperson 6 | cn: importer 7 | sn: user 8 | 9 | 10 | dn: cn=importer,ou=role,{{ openldap_path }} 11 | changetype: modify 12 | add: uniquemember 13 | uniquemember: uid=importer,ou=tenant0,ou=operator,ou=user,dc=fworch,dc=internal 14 | -------------------------------------------------------------------------------- /roles/middleware/templates/upgrade/7.2.4.ldif.j2: -------------------------------------------------------------------------------- 1 | 2 | dn: cn=modeller,ou=role,{{ openldap_path }} 3 | changetype: add 4 | objectClass: top 5 | objectClass: groupofuniquenames 6 | cn: modeller 7 | uniqueMember: 8 | description: T0018 9 | 10 | -------------------------------------------------------------------------------- /roles/openldap-server/handlers/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: restart slapd 3 | service: name=slapd state=restarted enabled=true 4 | become: true 5 | -------------------------------------------------------------------------------- /roles/openldap-server/meta/main.yml: -------------------------------------------------------------------------------- 1 | galaxy_info: 2 | author: "Benno Joy" 3 | company: AnsibleWorks 4 | license: BSD 5 | min_ansible_version: 1.4 6 | platforms: 7 | - name: EL 8 | versions: 9 | - 5 10 | - 6 11 | - name: Fedora 12 | versions: 13 | - 16 14 | - 17 15 | - 18 16 | - name: Ubuntu 17 | versions: 18 | - precise 19 | - quantal 20 | - raring 21 | - saucy 22 | categories: 23 | - system 24 | dependencies: [] 25 | -------------------------------------------------------------------------------- /roles/openldap-server/tasks/upgrade/5.1.17.yml: -------------------------------------------------------------------------------- 1 | - debug: 2 | msg: 3 | - "running dummy common upgrade script" 4 | -------------------------------------------------------------------------------- /roles/openldap-server/tasks/upgrade/5.4.1.yml: -------------------------------------------------------------------------------- 1 | - name: copy associated ldif files to system 2 | template: 3 | src: upgrade/5.4.1.ldif.j2 4 | dest: "{{ middleware_ldif_dir }}/5.4.1.ldif" 5 | force: true 6 | become: true 7 | 8 | - name: upgrade olcAccess policy 9 | command: "ldapmodify -H {{ openldap_url }} -D cn=config -y {{ ldap_manager_pwd_file }} -x -f {{ middleware_ldif_dir }}/5.4.1.ldif" 10 | become: true 11 | -------------------------------------------------------------------------------- /roles/openldap-server/tasks/upgrade/5.7.1.yml: -------------------------------------------------------------------------------- 1 | - name: rename old ldap manager pwd file in case of pre-5.7.1 upgrade 2 | copy: 3 | src: "{{ fworch_secrets_dir }}/ldap_manager_pw.txt" 4 | dest: "{{ ldap_manager_pwd_file }}" 5 | force: true 6 | remote_src: true 7 | become: true 8 | ignore_errors: true 9 | -------------------------------------------------------------------------------- /roles/openldap-server/tasks/upgrade/6.4.9.yml: -------------------------------------------------------------------------------- 1 | - name: copy associated ldif files to system 2 | template: 3 | src: upgrade/6.4.9.ldif.j2 4 | dest: "{{ middleware_ldif_dir }}/6.4.9.ldif" 5 | force: true 6 | become: true 7 | 8 | - name: upgrade sample group roles 9 | command: "ldapmodify -H {{ openldap_url }} -D {{ openldap_superuser_dn }} -y {{ ldap_manager_pwd_file }} -x -f {{ middleware_ldif_dir }}/6.4.9.ldif -c" 10 | become: true 11 | ignore_errors: true 12 | -------------------------------------------------------------------------------- /roles/openldap-server/templates/override.conf.j2: -------------------------------------------------------------------------------- 1 | [Service] 2 | ExecStartPre=/bin/mkdir -p /run/slapd 3 | ExecStartPre=/bin/chown openldap:openldap /run/slapd 4 | ExecStart= 5 | ExecStart=/usr/sbin/slapd -F /etc/ldap/slapd.d -u {{ openldap_server_user }} -g {{ openldap_server_user }} -h "ldap://{{ openldap_server }} ldaps:///" 6 | -------------------------------------------------------------------------------- /roles/openldap-server/vars/Debian.yml: -------------------------------------------------------------------------------- 1 | openldap_server_pkgs: 2 | - slapd 3 | - ldap-utils 4 | - openssl 5 | - python3-openssl 6 | 7 | openldap_server_app_path: "/etc/ldap" 8 | openldap_server_user: "openldap" 9 | -------------------------------------------------------------------------------- /roles/openldap-server/vars/RedHat.yml: -------------------------------------------------------------------------------- 1 | openldap_server_pkgs: 2 | - openldap-servers 3 | - openldap-clients 4 | - openssl 5 | - python3-openssl 6 | 7 | openldap_server_app_path: "/etc/openldap" 8 | openldap_server_user: ldap 9 | -------------------------------------------------------------------------------- /roles/openldap-server/vars/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | env: 4 | RUNLEVEL: 1 5 | -------------------------------------------------------------------------------- /roles/sample-auth-data/defaults/main.yml: -------------------------------------------------------------------------------- 1 | test_ldap_external_ad_add_connection: no -------------------------------------------------------------------------------- /roles/sample-data/templates/second_db.ldif.j2: -------------------------------------------------------------------------------- 1 | dn: olcDatabase=mdb,cn=config 2 | changetype: add 3 | objectClass: olcDatabaseConfig 4 | objectClass: olcMdbConfig 5 | olcDatabase: mdb 6 | olcSuffix: {{ sample_ldap_path }} 7 | olcDbDirectory: /var/lib/ldap/{{ sample_ldap_domain_name }}/ 8 | olcRootDN: {{ openldap_superuser_dn }} 9 | olcDbIndex: objectClass eq 10 | -------------------------------------------------------------------------------- /roles/tests-integration/files/api/test-graphql.md: -------------------------------------------------------------------------------- 1 | # API testing graphql 2 | 3 | ## sources 4 | 5 | - 6 | -------------------------------------------------------------------------------- /roles/tests-integration/files/importer/anonymizer/strings-customer-003.txt: -------------------------------------------------------------------------------- 1 | cactus 2 | CACTUS 3 | lhystems 4 | sting 5 | ralf 6 | Ralf 7 | kids 8 | ubuntu 9 | -------------------------------------------------------------------------------- /roles/tests-integration/files/importer/anonymizer/use_current_version_from_github.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CactuseSecurity/firewall-orchestrator/c40c905b136c2f06244dbbe506dba35b75fdc0f2/roles/tests-integration/files/importer/anonymizer/use_current_version_from_github.txt -------------------------------------------------------------------------------- /roles/tests-integration/files/importer/sample-configs/checkpoint_demo/fwauth.NDB: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CactuseSecurity/firewall-orchestrator/c40c905b136c2f06244dbbe506dba35b75fdc0f2/roles/tests-integration/files/importer/sample-configs/checkpoint_demo/fwauth.NDB -------------------------------------------------------------------------------- /roles/tests-integration/tasks/b64pad.yml: -------------------------------------------------------------------------------- 1 | ## adding potentially missing base64 = padding to base64encoded string: 2 | - set_fact: item="{{ item }}=" cacheable=true 3 | when: "item|length % 4 > 0" 4 | loop: 5 | - 1 6 | - 2 7 | - 3 -------------------------------------------------------------------------------- /roles/tests-integration/tasks/test-database.yml: -------------------------------------------------------------------------------- 1 | # add integration tests for database here 2 | # - import test 3 | # - report test 4 | 5 | # pg_prove -U postgres /pgjwt/test.sql 6 | 7 | - debug: 8 | msg: starting database integration tests 9 | -------------------------------------------------------------------------------- /roles/tests-integration/tasks/write-config-test-user-creds.yml: -------------------------------------------------------------------------------- 1 | - name: set config values 2 | set_fact: 3 | config_json: 4 | user: "user1{{ test_postfix }}" 5 | password: "{{ test_user1_pw }}" 6 | when: installation_mode != "uninstall" 7 | 8 | - name: create test user credential config file 9 | copy: 10 | content: "{{ config_json | to_nice_json }}" 11 | dest: "{{ fworch_secrets_dir }}/TestUserCreds.json" 12 | when: installation_mode != "uninstall" 13 | become: true 14 | -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/Data/CSVFileUploadErrorModel.cs: -------------------------------------------------------------------------------- 1 | namespace FWO.Ui.Data 2 | { 3 | /// 4 | /// Defines a model for errors that occured on csv file upload 5 | /// 6 | public class CSVFileUploadErrorModel : ErrorBaseModel 7 | { 8 | public CSVFileUploadErrorModel() : base() 9 | { 10 | } 11 | 12 | /// 13 | /// Additional Data/Info 14 | /// 15 | public string? EntryData { get; set; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/Data/FileUploadCase.cs: -------------------------------------------------------------------------------- 1 | namespace FWO.Ui.Data 2 | { 3 | public enum FileUploadCase 4 | { 5 | Undefined, 6 | ImportAppServerFromCSV 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/Data/MessageType.cs: -------------------------------------------------------------------------------- 1 | namespace FWO.Ui.Data 2 | { 3 | public enum MessageType 4 | { 5 | Info, 6 | Success, 7 | Warning, 8 | Error 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/Data/OrderMode.cs: -------------------------------------------------------------------------------- 1 | namespace FWO.Ui.Data 2 | { 3 | /// 4 | /// Defines the mode that should be used to order a collection. 5 | /// 6 | public enum OrderMode 7 | { 8 | Asc, 9 | Desc 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/Data/PopupSize.cs: -------------------------------------------------------------------------------- 1 | namespace FWO.Ui.Services 2 | { 3 | public enum PopupSize 4 | { 5 | FullScreen, 6 | XLarge, 7 | Large, 8 | Medium, 9 | Small, 10 | XSmall 11 | } 12 | } -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/Pages/Help/HelpApi.cshtml: -------------------------------------------------------------------------------- 1 | @page "/help/API" 2 | @model FWO.Ui.Pages.Help.MainModel 3 | @{ 4 | Layout = "HelpLayout"; 5 | } 6 | @section sidebar{ 7 | @{ 8 | await Html.RenderPartialAsync("HelpAPISidebar.cshtml"); 9 | } 10 | } 11 | @using FWO.Config.Api 12 | @inject UserConfig userConfig 13 | 14 |
15 |

@userConfig.GetText("api")

16 | @(Html.Raw(userConfig.GetText("H6001"))) 17 |
18 | -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/Pages/Help/HelpApiFwoHasura.cshtml: -------------------------------------------------------------------------------- 1 | @page "/help/API/hasura" 2 | @model FWO.Ui.Pages.Help.MainModel 3 | @{ 4 | Layout = "HelpLayout"; 5 | } 6 | @section sidebar{ 7 | @{ 8 | await Html.RenderPartialAsync("HelpAPISidebar.cshtml"); 9 | } 10 | } 11 | @using FWO.Config.Api 12 | @inject UserConfig userConfig 13 | 14 |
15 |

@userConfig.GetText("hasura")

16 | @(Html.Raw(userConfig.GetText("H6201"))) 17 |
18 | -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/Pages/Help/HelpApiLogout.cshtml: -------------------------------------------------------------------------------- 1 | @page "/help/API/logout" 2 | @model FWO.Ui.Pages.Help.MainModel 3 | @{ 4 | Layout = "HelpLayout"; 5 | } 6 | @section sidebar{ 7 | @{ 8 | await Html.RenderPartialAsync("HelpAPISidebar.cshtml"); 9 | } 10 | } 11 | @using FWO.Config.Api 12 | @inject UserConfig userConfig 13 | 14 |
15 |

@userConfig.GetText("logout")

16 | @(Html.Raw(userConfig.GetText("H6601"))) 17 |
18 | -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/Pages/Help/HelpApiSecurity.cshtml: -------------------------------------------------------------------------------- 1 | @page "/help/API/security" 2 | @model FWO.Ui.Pages.Help.MainModel 3 | @{ 4 | Layout = "HelpLayout"; 5 | } 6 | @section sidebar{ 7 | @{ 8 | await Html.RenderPartialAsync("HelpAPISidebar.cshtml"); 9 | } 10 | } 11 | @using FWO.Config.Api 12 | @inject UserConfig userConfig 13 | 14 |
15 |

@userConfig.GetText("security")

16 | @(Html.Raw(userConfig.GetText("H6301"))) 17 |
18 | -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/Pages/Help/HelpArchitechture.cshtml: -------------------------------------------------------------------------------- 1 | @page "/help/architecture" 2 | @model FWO.Ui.Pages.Help.MainModel 3 | @{ 4 | Layout = "HelpLayout"; 5 | } 6 | @section sidebar{ 7 | @{ 8 | await Html.RenderPartialAsync("HelpEmptySidebar.cshtml"); 9 | } 10 | } 11 | @using FWO.Config.Api 12 | @inject UserConfig userConfig 13 | 14 |
15 |

@userConfig.GetText("architecture")

16 | FWORCH Architecture 17 |
18 | -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/Pages/Help/HelpEmptySidebar.cshtml: -------------------------------------------------------------------------------- 1 |  7 | -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/Pages/Help/HelpModelling.cshtml: -------------------------------------------------------------------------------- 1 | @page "/help/modelling" 2 | @model FWO.Ui.Pages.Help.MainModel 3 | @{ 4 | Layout = "HelpLayout"; 5 | } 6 | @section sidebar{ 7 | @{ 8 | await Html.RenderPartialAsync("HelpModellingSidebar.cshtml"); 9 | } 10 | } 11 | @using FWO.Config.Api 12 | @inject UserConfig userConfig 13 | 14 |
15 |

@userConfig.GetText("modelling")

16 | @(Html.Raw(userConfig.GetText("H9001"))) 17 |
18 | -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/Pages/Help/HelpModellingApplications.cshtml: -------------------------------------------------------------------------------- 1 | @page "/help/modelling/applications" 2 | @model FWO.Ui.Pages.Help.MainModel 3 | @{ 4 | Layout = "HelpLayout"; 5 | } 6 | @section sidebar{ 7 | @{ 8 | await Html.RenderPartialAsync("HelpModellingSidebar.cshtml"); 9 | } 10 | } 11 | @using FWO.Config.Api 12 | @inject UserConfig userConfig 13 | 14 |
15 |

@userConfig.GetText("applications")

16 | @(Html.Raw(userConfig.GetText("H9011"))) 17 |

18 |
19 | -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/Pages/Help/HelpMonitoringAutodiscovery.cshtml: -------------------------------------------------------------------------------- 1 | @page "/help/monitoring/autodiscovery" 2 | @model FWO.Ui.Pages.Help.MainModel 3 | @{ 4 | Layout = "HelpLayout"; 5 | } 6 | @section sidebar{ 7 | @{ 8 | await Html.RenderPartialAsync("HelpMonitoringSidebar.cshtml"); 9 | } 10 | } 11 | @using FWO.Config.Api 12 | @inject UserConfig userConfig 13 | 14 |
15 |

@userConfig.GetText("autodiscovery")

16 | @(Html.Raw(userConfig.GetText("H7201"))) 17 |
18 | -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/Pages/Help/HelpMonitoringExternalRequestTickets.cshtml: -------------------------------------------------------------------------------- 1 | @page "/help/monitoring/external_request_tickets" 2 | @model FWO.Ui.Pages.Help.MainModel 3 | @{ 4 | Layout = "HelpLayout"; 5 | } 6 | @section sidebar{ 7 | @{ 8 | await Html.RenderPartialAsync("HelpMonitoringSidebar.cshtml"); 9 | } 10 | } 11 | @using FWO.Config.Api 12 | @inject UserConfig userConfig 13 | 14 |
15 |

@userConfig.GetText("ext_request_tickets")

16 | @(Html.Raw(userConfig.GetText("H9060"))) 17 |
18 | -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/Pages/Help/HelpMonitoringUiMessages.cshtml: -------------------------------------------------------------------------------- 1 | @page "/help/monitoring/ui_messages" 2 | @model FWO.Ui.Pages.Help.MainModel 3 | @{ 4 | Layout = "HelpLayout"; 5 | } 6 | @section sidebar{ 7 | @{ 8 | await Html.RenderPartialAsync("HelpMonitoringSidebar.cshtml"); 9 | } 10 | } 11 | @using FWO.Config.Api 12 | @inject UserConfig userConfig 13 | 14 |
15 |

@userConfig.GetText("ui_messages")

16 | @(Html.Raw(userConfig.GetText("H7401"))) 17 |
18 | -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/Pages/Help/HelpRecertification.cshtml: -------------------------------------------------------------------------------- 1 | @page "/help/recertification" 2 | @model FWO.Ui.Pages.Help.MainModel 3 | @{ 4 | Layout = "HelpLayout"; 5 | } 6 | @section sidebar{ 7 | @{ 8 | await Html.RenderPartialAsync("HelpRecertificationSidebar.cshtml"); 9 | } 10 | } 11 | @using FWO.Config.Api 12 | @inject UserConfig userConfig 13 | 14 |
15 |

@userConfig.GetText("recertification")

16 | @(Html.Raw(userConfig.GetText("H4031"))) 17 |
18 | -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/Pages/Help/HelpReporting.cshtml: -------------------------------------------------------------------------------- 1 | @page "/help/reporting" 2 | @model FWO.Ui.Pages.Help.MainModel 3 | @{ 4 | Layout = "HelpLayout"; 5 | } 6 | @section sidebar{ 7 | @{ 8 | await Html.RenderPartialAsync("HelpReportingSidebar.cshtml"); 9 | } 10 | } 11 | @using FWO.Config.Api 12 | @inject UserConfig userConfig 13 | 14 |
15 |

@userConfig.GetText("reporting")

16 | @(Html.Raw(userConfig.GetText("H1001"))) 17 |
18 | -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/Pages/Help/HelpReportingArchive.cshtml: -------------------------------------------------------------------------------- 1 | @page "/help/reporting/archive" 2 | @model FWO.Ui.Pages.Help.MainModel 3 | @{ 4 | Layout = "HelpLayout"; 5 | } 6 | @section sidebar{ 7 | @{ 8 | await Html.RenderPartialAsync("HelpReportingSidebar.cshtml"); 9 | } 10 | } 11 | @using FWO.Config.Api 12 | @inject UserConfig userConfig 13 | 14 |
15 |

@userConfig.GetText("archive")

16 | @(Html.Raw(userConfig.GetText("H3001"))) 17 |
18 | -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/Pages/Help/HelpReportingTypes.cshtml: -------------------------------------------------------------------------------- 1 | @page "/help/reporting/reporttypes" 2 | @model FWO.Ui.Pages.Help.MainModel 3 | @{ 4 | Layout = "HelpLayout"; 5 | } 6 | @section sidebar{ 7 | @{ 8 | await Html.RenderPartialAsync("HelpReportingSidebar.cshtml"); 9 | } 10 | } 11 | @using FWO.Config.Api 12 | @inject UserConfig userConfig 13 | 14 |
15 |

@userConfig.GetText("report_types")

16 | @(Html.Raw(userConfig.GetText("H1102"))) 17 |
18 | -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/Pages/Help/HelpSettingsPassword.cshtml: -------------------------------------------------------------------------------- 1 | @page "/help/settings/password" 2 | @model FWO.Ui.Pages.Help.MainModel 3 | @{ 4 | Layout = "HelpLayout"; 5 | } 6 | @section sidebar{ 7 | @{ 8 | await Html.RenderPartialAsync("HelpSettingsSidebar.cshtml"); 9 | } 10 | } 11 | @using FWO.Config.Api 12 | @inject UserConfig userConfig 13 | 14 |
15 |

@(userConfig.GetText("password"))

16 | @(Html.Raw(userConfig.GetText("H5451"))) 17 |
18 | -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/Pages/Help/HelpWorkflowChecklist.cshtml: -------------------------------------------------------------------------------- 1 | @page "/help/workflow/checklist" 2 | @model FWO.Ui.Pages.Help.MainModel 3 | @{ 4 | Layout = "HelpLayout"; 5 | } 6 | @section sidebar{ 7 | @{ 8 | await Html.RenderPartialAsync("HelpWorkflowSidebar.cshtml"); 9 | } 10 | } 11 | @using FWO.Config.Api 12 | @inject UserConfig userConfig 13 | 14 |
15 |

@(userConfig.GetText("checklist"))

16 | @(Html.Raw(userConfig.GetText("H8601"))) 17 |
18 | -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/Pages/Help/HelpWorkflowStates.cshtml: -------------------------------------------------------------------------------- 1 | @page "/help/workflow/states" 2 | @model FWO.Ui.Pages.Help.MainModel 3 | @{ 4 | Layout = "HelpLayout"; 5 | } 6 | @section sidebar{ 7 | @{ 8 | await Html.RenderPartialAsync("HelpWorkflowSidebar.cshtml"); 9 | } 10 | } 11 | @using FWO.Config.Api 12 | @inject UserConfig userConfig 13 | 14 |
15 |

@(userConfig.GetText("state_handling"))

16 | @(Html.Raw(userConfig.GetText("H8401"))) 17 |
18 | -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/Pages/Help/Index.cshtml.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc.RazorPages; 2 | using FWO.Config.Api; 3 | 4 | namespace FWO.Ui.Pages.Help 5 | { 6 | public class MainModel : PageModel 7 | { 8 | public UserConfig userConfig { get; set; } 9 | 10 | public MainModel(UserConfig userConfig) 11 | { 12 | this.userConfig = userConfig; 13 | } 14 | 15 | public void OnGet(string lang) 16 | { 17 | userConfig.SetLanguage(lang); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/Pages/Monitoring/_Imports.razor: -------------------------------------------------------------------------------- 1 | @layout MonitoringLayout 2 | 3 | @using BlazorTable 4 | @using FWO.Api.Client 5 | @using FWO.Api.Client.Queries 6 | @using FWO.Basics 7 | @using FWO.Config.Api 8 | @using FWO.Config.Api.Data 9 | @using FWO.Data 10 | @using FWO.Services 11 | @using FWO.Ui.Shared 12 | 13 | -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/Pages/NetworkModelling/EditAppRole.razor.css: -------------------------------------------------------------------------------- 1 | .dropzone-scrollable { 2 | height: 200px; 3 | overflow-y: auto; 4 | overflow-x: hidden; 5 | } 6 | -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/Pages/NetworkModelling/SearchInterface.razor.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CactuseSecurity/firewall-orchestrator/c40c905b136c2f06244dbbe506dba35b75fdc0f2/roles/ui/files/FWO.UI/Pages/NetworkModelling/SearchInterface.razor.css -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/Pages/NetworkModelling/_Imports.razor: -------------------------------------------------------------------------------- 1 | @using BlazorTable 2 | @using FWO.Api.Client 3 | @using FWO.Api.Client.Queries 4 | @using FWO.Basics 5 | @using FWO.Config.Api 6 | @using FWO.Data 7 | @using FWO.Data.Modelling 8 | @using FWO.Services 9 | @using FWO.Ui.Shared 10 | -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/Pages/Reporting/Reports/_Imports.razor: -------------------------------------------------------------------------------- 1 | @using BlazorTable 2 | @using FWO.Config.Api 3 | @using FWO.Api.Client 4 | @using FWO.Api.Client.Queries 5 | @using FWO.Basics 6 | @using FWO.Data 7 | @using FWO.Data.Report 8 | @using FWO.Ui.Shared 9 | -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/Pages/Reporting/_Imports.razor: -------------------------------------------------------------------------------- 1 | @using BlazorTable 2 | @using FWO.Api.Client 3 | @using FWO.Api.Client.Queries 4 | @using FWO.Basics 5 | @using FWO.Config.Api 6 | @using FWO.Data 7 | @using FWO.Data.Report 8 | @using FWO.Services 9 | -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/Pages/Request/_Imports.razor: -------------------------------------------------------------------------------- 1 | @layout RequestLayout 2 | 3 | @using BlazorTable 4 | @using FWO.Api.Client 5 | @using FWO.Api.Client.Queries 6 | @using FWO.Basics 7 | @using FWO.Config.Api 8 | @using FWO.Config.Api.Data 9 | @using FWO.Data 10 | @using FWO.Data.Workflow 11 | @using FWO.Services 12 | -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/Pages/Settings/SettingsMain.razor: -------------------------------------------------------------------------------- 1 | @page "/settings" 2 | 3 | @inject UserConfig userConfig 4 | 5 |
6 |

@(userConfig.GetText("settings"))

7 | 8 |
9 | @(userConfig.GetText("U5001")) 10 |
11 | 12 | -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/Pages/Settings/_Imports.razor: -------------------------------------------------------------------------------- 1 | @layout SettingsLayout 2 | 3 | @using BlazorTable 4 | @using FWO.Api.Client 5 | @using FWO.Api.Client.Queries 6 | @using FWO.Basics 7 | @using FWO.Config.Api 8 | @using FWO.Config.Api.Data 9 | @using FWO.Data 10 | @using FWO.Data.Workflow 11 | @using FWO.Data.Modelling 12 | @using FWO.Data.Report 13 | @using FWO.Services 14 | -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/Pages/_Imports.razor: -------------------------------------------------------------------------------- 1 | @using BlazorTable 2 | @using FWO.Api.Client 3 | @using FWO.Api.Client.Queries 4 | @using FWO.Basics 5 | @using FWO.Data -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "FWO.Ui": { 4 | "commandName": "Project", 5 | "launchBrowser": true, 6 | "applicationUrl": "http://localhost:5000", 7 | "environmentVariables": { 8 | "ASPNETCORE_ENVIRONMENT": "Development" 9 | } 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/Services/KeyboardInputService.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Components.Web; 2 | using FWO.Ui.Data; 3 | 4 | namespace FWO.Ui.Services 5 | { 6 | public class KeyboardInputService 7 | { 8 | public bool ShiftPressed { get; set; } = false; 9 | public bool ControlPressed { get; set; } = false; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/Shared/ConnectionTable.razor.css: -------------------------------------------------------------------------------- 1 | .show-scrollbar .table-responsive { 2 | overflow: scroll; 3 | } 4 | -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/Shared/EditList.razor.css: -------------------------------------------------------------------------------- 1 | .bg-success-subtle { 2 | background: rgb(83, 175, 36, 0.5) !important 3 | } 4 | -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/Shared/EmptyLayout.razor: -------------------------------------------------------------------------------- 1 | @inherits LayoutComponentBase 2 | 3 |
4 |
5 | @Body 6 |
7 |
-------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/Shared/HelpLink.razor: -------------------------------------------------------------------------------- 1 | @inject UserConfig userConfig 2 | @inject IJSRuntime jsRuntime 3 | 4 | 5 | @ChildContent 6 | 7 | 8 | @code 9 | { 10 | [Parameter] 11 | public RenderFragment? ChildContent { get; set; } 12 | 13 | [Parameter] 14 | public string? Page { get; set; } = ""; 15 | } 16 | -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/Shared/PageSizeComponent.razor.css: -------------------------------------------------------------------------------- 1 | .cwidth-70{ 2 | width: 70px; 3 | } -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/Shared/Tooltip.razor: -------------------------------------------------------------------------------- 1 | 
2 | @Text 3 | @ChildContent 4 |
5 | 6 | @code { 7 | [Parameter] public RenderFragment? ChildContent { get; set; } 8 | [Parameter] public string Text { get; set; } = ""; 9 | } 10 | -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/Shared/_Imports.razor: -------------------------------------------------------------------------------- 1 | @using BlazorTable 2 | @using FWO.Api.Client 3 | @using FWO.Api.Client.Queries 4 | @using FWO.Basics 5 | @using FWO.Config.Api 6 | @using FWO.Config.Api.Data 7 | @using FWO.Data 8 | @using FWO.Services 9 | -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/_Imports.razor: -------------------------------------------------------------------------------- 1 | @using System.Net.Http 2 | @using Microsoft.AspNetCore.Authorization 3 | @using Microsoft.AspNetCore.Components.Authorization 4 | @using Microsoft.AspNetCore.Components.Forms 5 | @using Microsoft.AspNetCore.Components.Routing 6 | @using Microsoft.AspNetCore.Components.Web 7 | @using Microsoft.JSInterop 8 | @using FWO.Ui.Shared 9 | @using FWO.Ui.Pages 10 | @using FWO.Ui.Services 11 | @using FWO.Logging 12 | @using FWO.Config 13 | @using FWO.Config.Api 14 | -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "DetailedErrors": true, 3 | "Logging": { 4 | "LogLevel": { 5 | "Default": "Information", 6 | "Microsoft": "Warning", 7 | "Microsoft.Hosting.Lifetime": "Information", 8 | "Microsoft.AspNetCore.SignalR": "Information" 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | }, 9 | "AllowedHosts": "*" 10 | } 11 | -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/wwwroot/css/open-iconic/font/fonts/open-iconic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CactuseSecurity/firewall-orchestrator/c40c905b136c2f06244dbbe506dba35b75fdc0f2/roles/ui/files/FWO.UI/wwwroot/css/open-iconic/font/fonts/open-iconic.eot -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/wwwroot/css/open-iconic/font/fonts/open-iconic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CactuseSecurity/firewall-orchestrator/c40c905b136c2f06244dbbe506dba35b75fdc0f2/roles/ui/files/FWO.UI/wwwroot/css/open-iconic/font/fonts/open-iconic.otf -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/wwwroot/css/open-iconic/font/fonts/open-iconic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CactuseSecurity/firewall-orchestrator/c40c905b136c2f06244dbbe506dba35b75fdc0f2/roles/ui/files/FWO.UI/wwwroot/css/open-iconic/font/fonts/open-iconic.ttf -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/wwwroot/css/open-iconic/font/fonts/open-iconic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CactuseSecurity/firewall-orchestrator/c40c905b136c2f06244dbbe506dba35b75fdc0f2/roles/ui/files/FWO.UI/wwwroot/css/open-iconic/font/fonts/open-iconic.woff -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CactuseSecurity/firewall-orchestrator/c40c905b136c2f06244dbbe506dba35b75fdc0f2/roles/ui/files/FWO.UI/wwwroot/favicon.ico -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/wwwroot/images/FWO_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CactuseSecurity/firewall-orchestrator/c40c905b136c2f06244dbbe506dba35b75fdc0f2/roles/ui/files/FWO.UI/wwwroot/images/FWO_logo.png -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/wwwroot/images/FWO_logo_navbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CactuseSecurity/firewall-orchestrator/c40c905b136c2f06244dbbe506dba35b75fdc0f2/roles/ui/files/FWO.UI/wwwroot/images/FWO_logo_navbar.png -------------------------------------------------------------------------------- /roles/ui/files/FWO.UI/wwwroot/js/clipboardCopy.js: -------------------------------------------------------------------------------- 1 | function copyText(text) { 2 | navigator.clipboard.writeText(text); 3 | } 4 | -------------------------------------------------------------------------------- /roles/ui/tasks/upgrade/5.1.17.yml: -------------------------------------------------------------------------------- 1 | - debug: 2 | msg: 3 | - "running dummy common upgrade script" 4 | -------------------------------------------------------------------------------- /roles/webhook/defaults/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | webhook_port: 60355 3 | webhook_secret: "changeMeSoon" -------------------------------------------------------------------------------- /roles/webhook/handlers/main.yml: -------------------------------------------------------------------------------- 1 | - name: Reload service systemctl 2 | systemd: 3 | daemon_reload: true 4 | listen: "restart daemons" 5 | become: true 6 | 7 | - name: restart webhook service 8 | service: 9 | name: fworch-webhook-receiver 10 | state: restarted 11 | listen: "restart daemons" 12 | become: true 13 | -------------------------------------------------------------------------------- /roles/webhook/templates/fworch-webhook-receiver.service.j2: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=FW Orch Webhook receiver for github 3 | After=network.target remote-fs.target nss-lookup.target 4 | [Service] 5 | WorkingDirectory={{ fworchtest_home }} 6 | ExecStart=/usr/bin/python3 {{ fworchtest_home }}/fworch-webhook-receiver.py 7 | StandardOutput=journal 8 | StandardError=journal 9 | SyslogIdentifier=fworch-webhook 10 | User=fworchtest 11 | Environment= 12 | [Install] 13 | WantedBy=multi-user.target 14 | -------------------------------------------------------------------------------- /scripts/customizing/modelling/customizingConfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "username": "abc", 3 | "password": "def", 4 | "ldapPath": "CN={USERID},OU=Benutzer,DC=CACTUS,DC=DE", 5 | "subnetData": "/usr/local/fworch/scripts/customizing/modelling/NwObjDataOrigExample.csv", 6 | "apiBaseUri": "/usr/local/fworch/scripts/customizing/modelling/sampleOwnerDataOrig.json" 7 | } 8 | -------------------------------------------------------------------------------- /scripts/devsrv-manual-install.sh: -------------------------------------------------------------------------------- 1 | cd 2 | rm -rf firewall-orchestrator 3 | ssh-agent bash -c 'ssh-add .ssh/id_github_deploy && git clone git@github.com:CactuseSecurity/firewall-orchestrator.git' 4 | cd firewall-orchestrator 5 | ansible-playbook site.yml -e "installation_mode=uninstall" 6 | ansible-playbook site.yml -e "installation_mode=new" 7 | -------------------------------------------------------------------------------- /scripts/generate_import_status_file.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # fworch import status writing script 3 | # to be run via cron every minute 4 | 5 | PHP=/usr/bin/php 6 | FWORCHHOME=/usr/local/fworch 7 | IMPORT_STATUS_DIR=/var/fworch 8 | IMPORT_STATUS_FILE=import_status.txt 9 | MKDIR=/bin/mkdir 10 | 11 | $MKDIR -p $IMPORT_STATUS_DIR 12 | $PHP $FWORCHHOME/web/htdocs/config/import_status_iframe.php --outputmode=text | sed 's/
/\n/g' > $IMPORT_STATUS_DIR/$IMPORT_STATUS_FILE -------------------------------------------------------------------------------- /scripts/get_pg_version.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | ver=$(psql --version | cut -d " " -f 3) 3 | major_ver=$(echo "$ver" | cut -d "." -f 1) 4 | minor_ver=$(echo "$ver" | cut -d "." -f 2) 5 | # return only major version from pg 10 onwards 6 | if [ $((major_ver * 1)) -gt 9 ] 7 | then 8 | ver=$major_ver 9 | fi 10 | echo -n "$ver" 11 | -------------------------------------------------------------------------------- /scripts/import_phion-mc-agent.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | { 3 | /usr/bin/id 4 | /bin/date 5 | } >> /var/tmp/itsecorg.log 2>&1; 6 | /bin/cp -u -r /opt/phion/rangetree/configroot/* /var/phion/home/itsecorg/ >> /var/tmp/itsecorg.log 2>&1; 7 | /bin/chown -R itsecorg:users /var/phion/home/itsecorg >> /var/tmp/itsecorg.log 2>&1; 8 | -------------------------------------------------------------------------------- /scripts/json_pretty_print.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python3 2 | # takes json from stdin and converts it from ugly to pretty json format 3 | 4 | import json 5 | json_obj = json.loads(input()) 6 | print(json.dumps(json_obj, indent=2)) 7 | -------------------------------------------------------------------------------- /scripts/release_lock.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python3 2 | 3 | import sys 4 | from time import sleep 5 | 6 | assert len(sys.argv) == 2 7 | lock_file_path = sys.argv[1] 8 | 9 | while True: 10 | try: 11 | with open(lock_file_path, "a") as lock_file: 12 | lock_file.write("RELEASED\n") 13 | print("Lock was released.") 14 | exit() 15 | except Exception as e: 16 | sleep(0.1) 17 | print(e) 18 | sleep(0.1) 19 | -------------------------------------------------------------------------------- /scripts/show-fworch-listeners.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - block: 3 | 4 | - name: check if netstat exists 5 | stat: 6 | path: /bin/netstat 7 | register: netstat_file_exists 8 | 9 | - name: get running tcp services 10 | command: netstat -tlpen 11 | register: netstat_result 12 | when: netstat_file_exists.stat.exists == true 13 | 14 | - name: show running tcp services 15 | debug: var=netstat_result.stdout_lines 16 | when: netstat_file_exists.stat.exists == true 17 | 18 | become: yes 19 | --------------------------------------------------------------------------------