gitextract_0gdlbcvx/ ├── .codacy.yml ├── .cursorignore ├── .devcontainer/ │ ├── config-runner.json │ ├── config.json │ ├── devcontainer.json │ └── postCreateCommand.sh ├── .dockerignore ├── .dredd/ │ ├── dredd.docker.yml │ ├── dredd.local.yml │ ├── dredd.testing.yml │ ├── dredd.windows.yml │ ├── hooks/ │ │ ├── capabilities.go │ │ ├── helpers.go │ │ └── main.go │ └── server-wrapper.sh ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── documentation.yml │ │ ├── feature_request.yml │ │ ├── problem.yml │ │ └── question.yml │ ├── copilot-instructions.md │ └── workflows/ │ ├── community_beta.yml │ ├── community_release.yml │ ├── dev.yml │ ├── pro_selfhosted_beta.yml │ └── pro_selfhosted_release.yml ├── .gitignore ├── .golangci.yml ├── .goreleaser.yml ├── .postman/ │ ├── api │ ├── api_4023cf7c-aabb-4d5a-a742-72dadbd4924a │ ├── api_5306c424-9fc0-4923-be37-fbda305ca8de │ ├── api_9a8524cc-4892-4b54-a6b3-1ef18d907626 │ └── postman/ │ └── collections/ │ └── Semaphore API.json ├── .vscode/ │ └── launch.json ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── SECURITY.md ├── TERRAFORM_ARGS_IMPROVEMENT.md ├── Taskfile.yml ├── api/ │ ├── api_test.go │ ├── apps.go │ ├── apps_test.go │ ├── auth.go │ ├── cache.go │ ├── debug/ │ │ ├── gc.go │ │ └── pprof.go │ ├── events.go │ ├── helpers/ │ │ ├── context.go │ │ ├── event_log.go │ │ ├── helpers.go │ │ ├── helpers_test.go │ │ ├── query_params.go │ │ ├── route_params.go │ │ └── write_response.go │ ├── integration.go │ ├── integration_test.go │ ├── login.go │ ├── login_test.go │ ├── options.go │ ├── projects/ │ │ ├── backup_restore.go │ │ ├── environment.go │ │ ├── integration.go │ │ ├── integration_alias.go │ │ ├── integration_extract_value.go │ │ ├── integration_matcher.go │ │ ├── inventory.go │ │ ├── inventory_test.go │ │ ├── keys.go │ │ ├── project.go │ │ ├── projects.go │ │ ├── repository.go │ │ ├── schedules.go │ │ ├── secret_storages.go │ │ ├── tasks.go │ │ ├── templates.go │ │ ├── users.go │ │ └── views.go │ ├── router.go │ ├── runners/ │ │ └── runners.go │ ├── runners.go │ ├── sockets/ │ │ ├── handler.go │ │ └── pool.go │ ├── system_info.go │ ├── tasks/ │ │ └── tasks.go │ ├── user.go │ └── users.go ├── api-docs.yml ├── cli/ │ ├── cmd/ │ │ ├── migrate.go │ │ ├── project.go │ │ ├── project_export.go │ │ ├── project_import.go │ │ ├── root.go │ │ ├── runner.go │ │ ├── runner_register.go │ │ ├── runner_setup.go │ │ ├── runner_start.go │ │ ├── runner_unregister.go │ │ ├── server.go │ │ ├── setup.go │ │ ├── syslog.go │ │ ├── syslog_windows.go │ │ ├── token.go │ │ ├── user.go │ │ ├── user_add.go │ │ ├── user_change.go │ │ ├── user_delete.go │ │ ├── user_get.go │ │ ├── user_list.go │ │ ├── user_totp.go │ │ ├── vault.go │ │ ├── vault_rekey.go │ │ └── version.go │ ├── main.go │ └── setup/ │ └── setup.go ├── db/ │ ├── APIToken.go │ ├── AccessKey.go │ ├── Alias.go │ ├── BackupEntity.go │ ├── Environment.go │ ├── Environment_test.go │ ├── Event.go │ ├── ExportEntityType.go │ ├── Integration.go │ ├── Inventory.go │ ├── Migration.go │ ├── Option.go │ ├── Project.go │ ├── ProjectInvite.go │ ├── ProjectInvite_test.go │ ├── ProjectStats.go │ ├── ProjectUser.go │ ├── ProjectUser_test.go │ ├── Repository.go │ ├── Repository_test.go │ ├── Role.go │ ├── Runner.go │ ├── Schedule.go │ ├── SecretStorage.go │ ├── Session.go │ ├── Store.go │ ├── Store_test.go │ ├── Task.go │ ├── TaskParams.go │ ├── Template.go │ ├── TemplateVault.go │ ├── Template_alias.go │ ├── TerraformInventoryAlias.go │ ├── TerraformInventoryState_pro.go │ ├── TerraformInventoryStore_pro.go │ ├── User.go │ ├── View.go │ ├── ansible.go │ ├── bolt/ │ │ ├── BoltDb.go │ │ ├── BoltDb_test.go │ │ ├── Task_test.go │ │ ├── access_key.go │ │ ├── environment.go │ │ ├── event.go │ │ ├── global_runner.go │ │ ├── global_runner_test.go │ │ ├── integrations.go │ │ ├── integrations_alias.go │ │ ├── inventory.go │ │ ├── migration.go │ │ ├── migration_2_10_12.go │ │ ├── migration_2_10_12_test.go │ │ ├── migration_2_10_16.go │ │ ├── migration_2_10_16_test.go │ │ ├── migration_2_10_24.go │ │ ├── migration_2_10_24_test.go │ │ ├── migration_2_10_33.go │ │ ├── migration_2_10_33_test.go │ │ ├── migration_2_14_7.go │ │ ├── migration_2_14_7_test.go │ │ ├── migration_2_17_0.go │ │ ├── migration_2_17_0_test.go │ │ ├── migration_2_17_2.go │ │ ├── migration_2_8_28.go │ │ ├── migration_2_8_28_test.go │ │ ├── migration_2_8_40.go │ │ ├── migration_2_8_40_test.go │ │ ├── migration_2_8_91.go │ │ ├── migration_2_8_91_test.go │ │ ├── option.go │ │ ├── option_test.go │ │ ├── project.go │ │ ├── project_invite.go │ │ ├── project_test.go │ │ ├── public_alias.go │ │ ├── repository.go │ │ ├── role.go │ │ ├── runner_pro.go │ │ ├── runner_pro_test.go │ │ ├── schedule.go │ │ ├── secret_storage.go │ │ ├── session.go │ │ ├── task.go │ │ ├── template.go │ │ ├── template_test.go │ │ ├── template_vault.go │ │ ├── template_vault_test.go │ │ ├── user.go │ │ ├── user_test.go │ │ ├── view.go │ │ └── view_test.go │ ├── config.go │ ├── config_test.go │ ├── factory/ │ │ └── store.go │ ├── migration/ │ │ └── migration.go │ └── sql/ │ ├── SqlDb.go │ ├── SqlDb_test.go │ ├── access_key.go │ ├── environment.go │ ├── event.go │ ├── global_runner.go │ ├── integration.go │ ├── integration_alias.go │ ├── inventory.go │ ├── migration.go │ ├── migration_2_10_24.go │ ├── migration_2_8_28.go │ ├── migration_2_8_42.go │ ├── migrations/ │ │ ├── v0.0.0.sql │ │ ├── v1.0.0.sql │ │ ├── v1.2.0.sql │ │ ├── v1.3.0.sql │ │ ├── v1.4.0.sql │ │ ├── v1.5.0.sql │ │ ├── v1.6.0.sql │ │ ├── v1.7.0.sql │ │ ├── v1.8.0.sql │ │ ├── v1.9.0.sql │ │ ├── v2.10.12.sql │ │ ├── v2.10.15.sql │ │ ├── v2.10.16.sql │ │ ├── v2.10.24.sql │ │ ├── v2.10.26.sql │ │ ├── v2.10.28.sql │ │ ├── v2.10.33.sql │ │ ├── v2.10.46.sql │ │ ├── v2.11.5.sql │ │ ├── v2.12.0.sql │ │ ├── v2.12.15.sql │ │ ├── v2.12.3.sql │ │ ├── v2.12.4.sql │ │ ├── v2.12.5.sql │ │ ├── v2.13.0.sql │ │ ├── v2.14.0.err.sql │ │ ├── v2.14.0.sql │ │ ├── v2.14.1.err.sql │ │ ├── v2.14.1.sql │ │ ├── v2.14.12.err.sql │ │ ├── v2.14.12.sql │ │ ├── v2.14.5.sql │ │ ├── v2.14.7.sql │ │ ├── v2.15.0.err.sql │ │ ├── v2.15.0.sql │ │ ├── v2.15.1.err.sql │ │ ├── v2.15.1.sql │ │ ├── v2.15.1.sqlite.sql │ │ ├── v2.15.2.err.sql │ │ ├── v2.15.2.sql │ │ ├── v2.15.3.err.sql │ │ ├── v2.15.3.sql │ │ ├── v2.15.4.err.sql │ │ ├── v2.15.4.sql │ │ ├── v2.16.0.err.sql │ │ ├── v2.16.0.sql │ │ ├── v2.16.1.err.sql │ │ ├── v2.16.1.sql │ │ ├── v2.16.2.err.sql │ │ ├── v2.16.2.sql │ │ ├── v2.16.3.err.sql │ │ ├── v2.16.3.sql │ │ ├── v2.16.50.err.sql │ │ ├── v2.16.50.sql │ │ ├── v2.16.8.err.sql │ │ ├── v2.16.8.sql │ │ ├── v2.17.0.err.sql │ │ ├── v2.17.0.sql │ │ ├── v2.17.1.err.sql │ │ ├── v2.17.1.sql │ │ ├── v2.17.15.err.sql │ │ ├── v2.17.15.sql │ │ ├── v2.17.2.err.sql │ │ ├── v2.17.2.sql │ │ ├── v2.2.1.sql │ │ ├── v2.3.0.sql │ │ ├── v2.3.1.sql │ │ ├── v2.3.2.sql │ │ ├── v2.4.0.sql │ │ ├── v2.5.0.sql │ │ ├── v2.5.2.sql │ │ ├── v2.7.1.sql │ │ ├── v2.7.10.sql │ │ ├── v2.7.12.sql │ │ ├── v2.7.13.sql │ │ ├── v2.7.4.sql │ │ ├── v2.7.6.sql │ │ ├── v2.7.8.sql │ │ ├── v2.7.9.sql │ │ ├── v2.8.0.sql │ │ ├── v2.8.1.sql │ │ ├── v2.8.20.sql │ │ ├── v2.8.25.sql │ │ ├── v2.8.26.sql │ │ ├── v2.8.36.sql │ │ ├── v2.8.38.sql │ │ ├── v2.8.39.sql │ │ ├── v2.8.40.sql │ │ ├── v2.8.42.sql │ │ ├── v2.8.51.sql │ │ ├── v2.8.57.sql │ │ ├── v2.8.58.sql │ │ ├── v2.8.7.sql │ │ ├── v2.8.8.sql │ │ ├── v2.8.91.sql │ │ ├── v2.9.100.sql │ │ ├── v2.9.46.sql │ │ ├── v2.9.6.sql │ │ ├── v2.9.60.sql │ │ ├── v2.9.61.sql │ │ ├── v2.9.62.sql │ │ ├── v2.9.70.sql │ │ └── v2.9.97.sql │ ├── option.go │ ├── project.go │ ├── project_invite.go │ ├── repository.go │ ├── role.go │ ├── runner.go │ ├── schedule.go │ ├── secret_storage.go │ ├── session.go │ ├── task.go │ ├── template.go │ ├── template_vault.go │ ├── user.go │ └── view.go ├── db_lib/ │ ├── AccessKeyInstaller.go │ ├── AnsibleApp.go │ ├── AnsiblePlaybook.go │ ├── AppFactory.go │ ├── CmdGitClient.go │ ├── GitClientFactory.go │ ├── GitRepository.go │ ├── GoGitClient.go │ ├── LocalApp.go │ ├── LocalApp_test.go │ ├── ShellApp.go │ └── TerraformApp.go ├── deployment/ │ ├── compose/ │ │ ├── README.md │ │ ├── dredd/ │ │ │ ├── base.yml │ │ │ ├── boltdb.yml │ │ │ ├── mariadb.yml │ │ │ ├── mysql.yml │ │ │ ├── postgres.yml │ │ │ └── sqlite.yml │ │ ├── runner/ │ │ │ ├── base.yml │ │ │ ├── build.yml │ │ │ └── config.yml │ │ ├── server/ │ │ │ ├── base.yml │ │ │ ├── build.yml │ │ │ └── config.yml │ │ └── store/ │ │ ├── boltdb.yml │ │ ├── local.yml │ │ ├── mariadb.yml │ │ ├── mysql.yml │ │ ├── postgres.yml │ │ └── sqlite.yml │ ├── docker/ │ │ ├── README.md │ │ ├── dredd/ │ │ │ ├── Dockerfile │ │ │ └── entrypoint │ │ ├── runner/ │ │ │ ├── Dockerfile │ │ │ ├── ansible.cfg │ │ │ ├── goss.yaml │ │ │ └── runner-wrapper │ │ └── server/ │ │ ├── Dockerfile │ │ ├── ansible.cfg │ │ ├── goss.yaml │ │ ├── powershell/ │ │ │ └── Dockerfile │ │ └── server-wrapper │ ├── packaging/ │ │ └── semaphore.spec │ └── systemd/ │ ├── README.md │ ├── env │ ├── runner.service │ ├── semaphore.service │ └── util/ │ ├── install.sh │ └── uninstall.sh ├── examples/ │ ├── authentik_ldap/ │ │ ├── .gitignore │ │ ├── README.md │ │ └── docker-compose.yml │ ├── openldap/ │ │ ├── README.md │ │ └── docker-compose.yml │ └── terraform_args_example.json ├── go.mod ├── go.sum ├── hook_helpers/ │ └── hooks_helpers.go ├── pkg/ │ ├── common_errors/ │ │ └── common_errors.go │ ├── conv/ │ │ └── conv.go │ ├── random/ │ │ └── string.go │ ├── ssh/ │ │ ├── agent.go │ │ └── agent_test.go │ ├── task_logger/ │ │ └── task_logger.go │ └── tz/ │ └── time.go ├── pro/ │ ├── api/ │ │ ├── auth_verify.go │ │ ├── projects/ │ │ │ ├── runners.go │ │ │ └── terraform_inventory.go │ │ ├── roles.go │ │ ├── subscriptions.go │ │ └── terraform.go │ ├── db/ │ │ ├── factory/ │ │ │ └── factory.go │ │ └── sql/ │ │ ├── ansible_task.go │ │ └── terraform_inventory.go │ ├── go.mod │ ├── go.sum │ ├── pkg/ │ │ ├── features/ │ │ │ └── features.go │ │ └── stage_parsers/ │ │ └── next_step.go │ └── services/ │ ├── ha/ │ │ └── ha.go │ ├── server/ │ │ ├── access_key_serializer_dvls.go │ │ ├── access_key_serializer_vault.go │ │ ├── log_write_svc.go │ │ ├── secret_storage_svc.go │ │ └── subscription_svc.go │ └── tasks/ │ └── task_state_store_factory.go ├── pro_interfaces/ │ ├── log_write_svc.go │ ├── project_runner_ctl.go │ ├── subscription_ctl.go │ ├── subscription_svc.go │ └── terraform_inventory_ctl.go ├── qodana.yaml ├── renovate.json ├── services/ │ ├── export/ │ │ ├── AccessKey.go │ │ ├── Environment.go │ │ ├── Event.go │ │ ├── Exporter.go │ │ ├── Integration.go │ │ ├── IntegrationAliases.go │ │ ├── IntegrationExtractValue.go │ │ ├── IntegrationMatcher.go │ │ ├── Inventory.go │ │ ├── Option.go │ │ ├── Project.go │ │ ├── ProjectUser.go │ │ ├── Repository.go │ │ ├── Role.go │ │ ├── Runner.go │ │ ├── Schedule.go │ │ ├── SecretStorage.go │ │ ├── Task.go │ │ ├── TaskOutput.go │ │ ├── TaskStage.go │ │ ├── TaskStageResult.go │ │ ├── Template.go │ │ ├── TemplateRoles.go │ │ ├── TemplateVault.go │ │ ├── User.go │ │ └── View.go │ ├── project/ │ │ ├── backup.go │ │ ├── backup_marshal.go │ │ ├── backup_marshal_test.go │ │ ├── backup_test.go │ │ ├── restore.go │ │ └── types.go │ ├── runners/ │ │ ├── job_pool.go │ │ ├── running_job.go │ │ └── types.go │ ├── schedules/ │ │ ├── SchedulePool.go │ │ └── SchedulePool_test.go │ ├── server/ │ │ ├── AccessKey_test.go │ │ ├── access_key_encryption_svc.go │ │ ├── access_key_installation_svc.go │ │ ├── access_key_serializer.go │ │ ├── access_key_serializer_local.go │ │ ├── access_key_svc.go │ │ ├── environment_svc.go │ │ ├── intergration_svc.go │ │ ├── inventory_svc.go │ │ ├── project_svc.go │ │ ├── project_svc_test.go │ │ └── secret_storage_svc.go │ ├── session_svc.go │ └── tasks/ │ ├── LocalJob.go │ ├── LocalJob_inventory.go │ ├── RemoteJob.go │ ├── TaskPool.go │ ├── TaskPool_test.go │ ├── TaskRunner.go │ ├── TaskRunner_logging.go │ ├── TaskRunner_test.go │ ├── alert.go │ ├── alert_test_sender.go │ ├── hooks/ │ │ ├── ansible.go │ │ ├── common.go │ │ └── factory.go │ ├── http_test.go │ ├── task_state_store.go │ └── templates/ │ ├── dingtalk.tmpl │ ├── email.tmpl │ ├── gotify.tmpl │ ├── microsoft-teams.tmpl │ ├── rocketchat.tmpl │ ├── slack.tmpl │ └── telegram.tmpl ├── test/ │ ├── e2e/ │ │ ├── .gitignore │ │ ├── package.json │ │ ├── playwright.config.ts │ │ └── tests/ │ │ ├── fixtures.ts │ │ ├── task.spec.ts │ │ └── variable-group.spec.ts │ └── mcp/ │ ├── api/ │ │ ├── AGENT.md │ │ ├── data/ │ │ │ └── case4/ │ │ │ └── test.sh │ │ ├── run.sh │ │ └── test_plan.md │ └── e2e/ │ ├── .gitignore │ ├── AGENT.md │ ├── package.json │ ├── playwright.config.ts │ ├── run.sh │ └── test_plan.md ├── util/ │ ├── App.go │ ├── OdbcProvider.go │ ├── ansi.go │ ├── config.go │ ├── config_assign_test.go │ ├── config_auth.go │ ├── config_sysproc.go │ ├── config_sysproc_windows.go │ ├── config_test.go │ ├── debug.go │ ├── encryption.go │ ├── errorLogging.go │ ├── mailer/ │ │ ├── auth.go │ │ └── mailer.go │ ├── shell.go │ ├── test_helpers.go │ └── version.go └── web/ ├── .browserslistrc ├── .editorconfig ├── .eslintrc.js ├── README.md ├── babel.config.js ├── gulp-gpt-translate.js ├── gulpfile.js ├── package.json ├── public/ │ ├── index.html │ ├── swagger/ │ │ ├── api-docs.yml │ │ ├── index.css │ │ ├── index.html │ │ ├── oauth2-redirect.html │ │ ├── swagger-initializer.js │ │ ├── swagger-ui-bundle.js │ │ ├── swagger-ui-es-bundle-core.js │ │ ├── swagger-ui-es-bundle.js │ │ ├── swagger-ui-standalone-preset.js │ │ ├── swagger-ui.css │ │ └── swagger-ui.js │ └── test.txt ├── src/ │ ├── App.vue │ ├── assets/ │ │ ├── fonts/ │ │ │ └── LICENSE.txt │ │ └── scss/ │ │ ├── components.scss │ │ └── main.scss │ ├── components/ │ │ ├── AboutDialog.vue │ │ ├── AnsibleStageView.vue │ │ ├── AppFieldsMixin.js │ │ ├── AppForm.vue │ │ ├── AppsMixin.js │ │ ├── ArgsPicker.vue │ │ ├── ChangePasswordForm.vue │ │ ├── CopyClipboardButton.vue │ │ ├── CronInput.vue │ │ ├── DashboardMenu.vue │ │ ├── DvlsIcon.vue │ │ ├── EditDialog.vue │ │ ├── EditRoleForm.vue │ │ ├── EditTeamMemberDialog.vue │ │ ├── EditTemplateDialog.vue │ │ ├── EditTemplatePermissionDialog.vue │ │ ├── EditTemplatePermissionForm.vue │ │ ├── EditViewsForm.vue │ │ ├── EnvironmentForm.vue │ │ ├── HashicorpVaultIcon.vue │ │ ├── IndeterminateProgressCircular.vue │ │ ├── IntegrationExtractValueForm.vue │ │ ├── IntegrationExtractorChildValueFormBase.js │ │ ├── IntegrationExtractorForm.vue │ │ ├── IntegrationExtractorFormBase.js │ │ ├── IntegrationExtractorRefsView.vue │ │ ├── IntegrationExtractorsBase.js │ │ ├── IntegrationForm.vue │ │ ├── IntegrationMatcherForm.vue │ │ ├── IntegrationRefsView.vue │ │ ├── InventoryForm.vue │ │ ├── InventorySelectForm.vue │ │ ├── ItemFormBase.js │ │ ├── ItemListPageBase.js │ │ ├── KeyForm.vue │ │ ├── KeyStoreMenu.vue │ │ ├── LineChart.vue │ │ ├── NewTaskDialog.vue │ │ ├── ObjectRefsDialog.vue │ │ ├── ObjectRefsView.vue │ │ ├── OpenTofuIcon.vue │ │ ├── PageBottomSheet.vue │ │ ├── PageMixin.js │ │ ├── PermissionsCheck.js │ │ ├── ProjectForm.vue │ │ ├── ProjectMixin.js │ │ ├── PulumiIcon.vue │ │ ├── RepositoryForm.vue │ │ ├── RestoreProjectForm.vue │ │ ├── RichEditor.vue │ │ ├── RunnerForm.vue │ │ ├── ScheduleForm.vue │ │ ├── SecretStorageForm.vue │ │ ├── SecretStorageSyncOptionsForm.vue │ │ ├── SingleLineEditable.vue │ │ ├── SubscriptionForm.vue │ │ ├── SubscriptionLabel.vue │ │ ├── SurveyVars.vue │ │ ├── SystemInfoDialog.vue │ │ ├── SystemSettingsDialog.vue │ │ ├── TableSettingsSheet.vue │ │ ├── TaskDetails.vue │ │ ├── TaskForm.vue │ │ ├── TaskLink.vue │ │ ├── TaskList.vue │ │ ├── TaskLogDialog.vue │ │ ├── TaskLogView.vue │ │ ├── TaskLogViewRecord.vue │ │ ├── TaskParamsAnsibleForm.vue │ │ ├── TaskParamsForm.vue │ │ ├── TaskParamsTerraformForm.vue │ │ ├── TaskStats.vue │ │ ├── TaskStatus.vue │ │ ├── TeamMemberForm.vue │ │ ├── TeamMenu.vue │ │ ├── TemplateForm.vue │ │ ├── TemplatePermissionsChips.vue │ │ ├── TemplateSelectForm.vue │ │ ├── TemplateVaults.vue │ │ ├── TerraformAliasForm.vue │ │ ├── TerraformInventoryForm.vue │ │ ├── TerraformStateView.vue │ │ ├── TerragruntIcon.vue │ │ ├── UserForm.vue │ │ ├── YesNoDialog.vue │ │ └── chartjs-adapter-day.js │ ├── event-bus.js │ ├── lang/ │ │ ├── de.js │ │ ├── en.js │ │ ├── es.js │ │ ├── fr.js │ │ ├── index.js │ │ ├── it.js │ │ ├── ja.js │ │ ├── ko.js │ │ ├── nl.js │ │ ├── pl.js │ │ ├── pt.js │ │ ├── pt_br.js │ │ ├── ru.js │ │ ├── uk.js │ │ ├── zh_cn.js │ │ └── zh_tw.js │ ├── lib/ │ │ ├── FakeWebSocket.js │ │ ├── Listenable.js │ │ ├── PubSub.js │ │ ├── Socket.js │ │ ├── api.js │ │ ├── constants.js │ │ ├── copyToClipboard.js │ │ ├── delay.js │ │ └── error.js │ ├── main.js │ ├── plugins/ │ │ ├── i18.js │ │ └── vuetify.js │ ├── router/ │ │ └── index.js │ ├── scss/ │ │ └── variables.scss │ ├── socket.js │ └── views/ │ ├── AcceptInvite.vue │ ├── Apps.vue │ ├── Auth.vue │ ├── Options.vue │ ├── Roles.vue │ ├── Runners.vue │ ├── Tasks.vue │ ├── Tokens.vue │ ├── Users.vue │ └── project/ │ ├── Activity.vue │ ├── Environment.vue │ ├── History.vue │ ├── IntegrationExtractValue.vue │ ├── IntegrationExtractor.vue │ ├── IntegrationExtractorCrumb.vue │ ├── IntegrationMatcher.vue │ ├── Integrations.vue │ ├── IntegrationsBase.js │ ├── Inventory.vue │ ├── Invites.vue │ ├── Keys.vue │ ├── New.vue │ ├── Repositories.vue │ ├── RestoreProject.vue │ ├── Schedule.vue │ ├── SecretStorages.vue │ ├── Settings.vue │ ├── Stats.vue │ ├── Team.vue │ ├── TemplateView.vue │ ├── Templates.vue │ └── template/ │ ├── TemplateDetails.vue │ ├── TemplatePerms.vue │ └── TemplateTerraformState.vue ├── tests/ │ └── unit/ │ ├── example.spec.js │ └── lib/ │ ├── Listenable.spec.js │ ├── Socket.spec.js │ └── error.spec.js └── vue.config.js