diff --git a/apps/documentations/base/cde-api-worker-copy.yaml b/apps/documentations/base/cde-api-worker-copy.yaml
new file mode 100644
index 0000000..4627a68
--- /dev/null
+++ b/apps/documentations/base/cde-api-worker-copy.yaml
@@ -0,0 +1,370 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2
+kind: HelmRelease
+metadata:
+ name: cde-api-worker-copy
+ namespace: documentations
+spec:
+ interval: 10m
+ chart:
+ spec:
+ chart: universal-chart
+ version: "0.1.9"
+ sourceRef:
+ kind: HelmRepository
+ name: yc-oci-charts
+ namespace: flux-system
+ interval: 10m
+ install:
+ remediation:
+ retries: 3
+ upgrade:
+ remediation:
+ retries: 3
+ values:
+ global:
+ env: _default
+ services:
+ worker-copy:
+ enabled: true
+ serviceAccount:
+ enabled:
+ _default: true
+ name:
+ _default: documentations-vault
+ deployment:
+ enabled: true
+ name:
+ _default: worker-copy
+ replicaCount:
+ _default: 1
+ revisionHistoryLimit:
+ _default: 5
+ resources:
+ requests:
+ cpu:
+ _default: 100m
+ memory:
+ _default: 64Mi
+ command:
+ _default: ["/bin/sh", "-ec"]
+ args:
+ _default:
+ - |
+ set -a
+ [ -f /vault/secrets/cde-api-postgres ] && . /vault/secrets/cde-api-postgres
+ [ -f /vault/secrets/cde-api-s3 ] && . /vault/secrets/cde-api-s3
+ [ -f /vault/secrets/cde-api-zeebe ] && . /vault/secrets/cde-api-zeebe
+ [ -f /vault/secrets/cde-api-rabbitmq ] && . /vault/secrets/cde-api-rabbitmq
+ set +a
+ exec /opt/worker
+ image:
+ name:
+ _default: cr.yandex/crp3ccidau046kdj8g9q/cde-api-worker-copy:prod_c9bc246
+ pullPolicy:
+ _default: IfNotPresent
+ service:
+ enabled: false
+ imagePullSecrets:
+ enabled:
+ _default: true
+ name:
+ _default: regcred
+ envs:
+ - name: CDE_API_EAV_HOST
+ value:
+ _default: "http://backend-svc.eav.svc.cluster.local:80"
+ - name: CDE_API_APP_NAME
+ value:
+ _default: "worker-copy"
+ - name: CDE_API_SENTRY_DSN
+ value:
+ _default: ""
+ - name: CDE_API_SENTRY_ENVIRONMENT
+ value:
+ _default: ""
+ - name: CDE_API_LOG_LEVEL
+ value:
+ _default: "info"
+ - name: CDE_API_OBSERVABILITY_ENABLE
+ value:
+ _default: "true"
+ - name: CDE_API_OBSERVABILITY_HOST
+ value:
+ _default: "signoz-otel-collector-external.signoz.svc.cluster.local"
+ - name: CDE_API_OBSERVABILITY_PORT
+ value:
+ _default: "4317"
+ - name: CDE_API_S3_MAX_SINGLE_UPLOAD_SIZE
+ value:
+ _default: "5368709120"
+ - name: CDE_API_S3_MAX_PART_SIZE
+ value:
+ _default: "524288000"
+ - name: CDE_API_S3_UPLOAD_STALL_TIMEOUT
+ value:
+ _default: "10m"
+ - name: CDE_API_OBSERVABILITY_SERVICE_NAME
+ value:
+ _default: "worker-copy"
+ - name: CDE_API_SYSTEMLOG_BASE_URL
+ value:
+ _default: "http://backend-svc.system-log.svc.cluster.local:80"
+ - name: CDE_API_SYSTEMLOG_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_DATABASE__SSLMODE
+ value:
+ _default: "disable"
+ - name: CDE_API_DATABASE__INSECURE_SKIP_TLS
+ value:
+ _default: "false"
+ - name: CDE_API_DATABASE_MAX_CONN_LIFETIME
+ value:
+ _default: "30m"
+ - name: CDE_API_DATABASE_MAX_CONN_IDLE_TIME
+ value:
+ _default: "10m"
+ - name: CDE_API_DATABASE_HEALTH_CHECK_PERIOD
+ value:
+ _default: "30s"
+ - name: CDE_API_DATABASE_POOL_SIZE
+ value:
+ _default: "3"
+ - name: CDE_API_REDIS__SSL
+ value:
+ _default: "false"
+ - name: CDE_API_REDIS__POOL_SIZE
+ value:
+ _default: "5"
+ - name: CDE_API_REDIS__MIN_IDLE_CONNS
+ value:
+ _default: "1"
+ - name: CDE_API_REDIS__DIAL_TIMEOUT_MS
+ value:
+ _default: "5000"
+ - name: CDE_API_REDIS__READ_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__WRITE_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__DEFAULT_TTL_MINUTES
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__PERMISSION_CACHE_ENABLED
+ value:
+ _default: "false"
+ - name: CDE_API_S3_USE_SSL
+ value:
+ _default: "true"
+ - name: CDE_API_S3_BUCKET_LOOKUP
+ value:
+ _default: "auto"
+ - name: CDE_API_S3_INSECURE_SKIP_TLS
+ value:
+ _default: "true"
+ - name: CDE_API_S3_CHECK_BUCKET
+ value:
+ _default: "false"
+ - name: CDE_API_S3_BUCKET_NAME
+ value:
+ _default: "documentations-prod"
+ - name: CDE_API_ZEEBE_USE_PLAINTEXT
+ value:
+ _default: "true"
+ - name: CDE_API_MAILER_BASE_URL
+ value:
+ _default: "http://mailer-service.mailer:8000"
+ - name: CDE_API_MAILER_FROM_EMAIL
+ value:
+ _default: "noreply@sarex.io"
+ - name: CDE_API_WORKFLOW_BASE_URL
+ value:
+ _default: "http://backend-svc.processing.svc.cluster.local:80"
+ - name: CDE_API_WORKFLOW_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_WORKFLOW_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_BIMAPI_URL
+ value:
+ _default: "http://backend-svc.bim.svc.cluster.local:80"
+ - name: CDE_API_BIMAPI_V2_URL
+ value:
+ _default: "http://backend-svc.bim.svc.cluster.local:80"
+ - name: CDE_API_BIMAPI_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_BIMAPI_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_BIMAPI_TIMEOUT_V2_MS
+ value:
+ _default: "300000"
+ - name: CDE_API_CONTAINER_REGISTRY
+ value:
+ _default: "cr.yandex/crp3ccidau046kdj8g9q"
+ - name: CDE_API_WORKFLOWS_IMAGES_VERSION
+ value:
+ _default: "master"
+ - name: CDE_API_DJANGO_HOST
+ value:
+ _default: "http://backend-svc.django.svc.cluster.local:80"
+ - name: CDE_API_ENVIRONMENT
+ value:
+ _default: "production"
+ - name: CDE_API_CONVERTED_PDF_TO_S3
+ value:
+ _default: "true"
+ - name: CDE_API_CONVERT_DXF_TO_GEOJSON
+ value:
+ _default: "true"
+ - name: CDE_API_CONVERT_DWG_TO_GEOJSON
+ value:
+ _default: "true"
+ - name: CDE_API_USE_BIMV1_FOR_BIMV2
+ value:
+ _default: "true"
+ - name: CDE_API_LAST_MASTER_BIM
+ value:
+ _default: "36311"
+ - name: CDE_API_LAST_SLAVE_1_BIM
+ value:
+ _default: "94015"
+ - name: CDE_API_LAST_SLAVE_2_BIM
+ value:
+ _default: "135771"
+ - name: CDE_API_USE_BIM_INSERTER
+ value:
+ _default: "true"
+ - name: CDE_API_USE_LEGACY_BIM_FLOW
+ value:
+ _default: "0"
+ - name: CDE_API_DOCUMENTATION_V2_URL
+ value:
+ _default: "http://backend-api-svc.documentations.svc.cluster.local:80"
+ - name: CDE_API_INTERNAL_URL
+ value:
+ _default: "http://cde-api.documentations:8000"
+ - name: CDE_API_FLOWS_URL
+ value:
+ _default: "http://backend-svc.flows.svc.cluster.local:80"
+ - name: CDE_API_TRANSMITTALS_URL
+ value:
+ _default: "http://transmittal-service.transmittal.svc.cluster.local:80"
+ - name: CDE_API_WORKFLOWS_CONFIG_FILEPATH
+ value:
+ _default: "/etc/app/tasks_execution_config.json"
+ - name: CDE_API_WORKSPACE_BASE_URL
+ value:
+ _default: "http://backend-svc.workspaces.svc.cluster.local:80"
+ - name: CDE_API_WORKSPACE_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_WORKSPACE_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_RABBITMQ__MARKS_ROUTING_KEY
+ value:
+ _default: "pdf_markings_input"
+ - name: CDE_API_RABBITMQ__HASHER_ROUTING_KEY
+ value:
+ _default: "hash.compute.normal"
+ - name: CDE_API_RABBITMQ__HASHER_EXCHANGE
+ value:
+ _default: "hash.compute"
+ - name: CDE_API_ISSUES_SYNC_ENABLED
+ value:
+ _default: "false"
+ - name: CDE_API_ISSUES_BASE_URL
+ value:
+ _default: "http://issues-service.platform:8000"
+ - name: CDE_API_ISSUES_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_ISSUES_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_COPY_WORKER_JOBS
+ value:
+ _default: ""
+ - name: CDE_API_COPY_JOB_TIMEOUT_MINUTES
+ value:
+ _default: "30"
+ - name: CDE_API_COPY_STEP_PARALLELISM
+ value:
+ _default: "1"
+ - name: CDE_API_COPY_S3_PARALLELISM
+ value:
+ _default: "1"
+ - name: CDE_API_REDIS__HOST
+ value:
+ _default: "redis"
+ - name: CDE_API_REDIS__PORT
+ value:
+ _default: "6379"
+ - name: CDE_API_RABBITMQ__HOST
+ value:
+ _default: "rabbitmq.rabbitmq.svc.cluster.local"
+ - name: CDE_API_RABBITMQ__PORT
+ value:
+ _default: "5672"
+ podAnnotations:
+ _default:
+ traffic.sidecar.istio.io/excludeOutboundPorts: "4317,4318,9411,8200"
+ vault.hashicorp.com/agent-init-first: "true"
+ vault.hashicorp.com/agent-inject: "true"
+ vault.hashicorp.com/agent-pre-populate-only: "true"
+ vault.hashicorp.com/auth-path: auth/kubernetes
+ vault.hashicorp.com/role: documentations
+ vault.hashicorp.com/agent-inject-secret-cde-api-postgres: secrets/data/apps/documentations/postgres
+ vault.hashicorp.com/agent-inject-template-cde-api-postgres: |-
+ {{- with secret "secrets/data/apps/documentations/postgres" -}}
+ CDE_API_DATABASE__HOST={{ index .Data.data "host" }}
+ CDE_API_DATABASE__PORT={{ index .Data.data "port" }}
+ CDE_API_DATABASE__NAME={{ index .Data.data "database" }}
+ CDE_API_DATABASE__USER={{ index .Data.data "username" }}
+ CDE_API_DATABASE__PASSWORD={{ index .Data.data "password" }}
+ {{- end -}}
+ vault.hashicorp.com/agent-inject-secret-cde-api-s3: secrets/data/minio/apps/documentations
+ vault.hashicorp.com/agent-inject-template-cde-api-s3: |-
+ {{- with secret "secrets/data/minio/apps/documentations" -}}
+ CDE_API_S3_ENDPOINT={{ index .Data.data.client "endpoint" }}
+ CDE_API_S3_ACCESS_KEY={{ index .Data.data "access_key" }}
+ CDE_API_S3_SECRET_KEY={{ index .Data.data "secret_key" }}
+ {{- end -}}
+ vault.hashicorp.com/agent-inject-secret-cde-api-zeebe: secrets/data/apps/cde-api/zeebe
+ vault.hashicorp.com/agent-inject-template-cde-api-zeebe: |-
+ {{- with secret "secrets/data/apps/cde-api/zeebe" -}}
+ CDE_API_ZEEBE_GATEWAY_ADDRESS={{ index .Data.data "gateway_address" }}
+ CDE_API_ZEEBE_CLIENT_ID={{ index .Data.data "client_id" }}
+ CDE_API_ZEEBE_CLIENT_SECRET={{ index .Data.data "client_secret" }}
+ CDE_API_ZEEBE_AUTH_SERVER_URL={{ index .Data.data "auth_server_url" }}
+ {{- end -}}
+ vault.hashicorp.com/agent-inject-secret-cde-api-rabbitmq: secrets/data/rabbitmq/apps/cde
+ vault.hashicorp.com/agent-inject-template-cde-api-rabbitmq: |-
+ {{- with secret "secrets/data/rabbitmq/apps/cde" -}}
+ CDE_API_RABBITMQ__USER={{ index .Data.data "username" }}
+ CDE_API_RABBITMQ__PASSWORD={{ index .Data.data "password" }}
+ CDE_API_RABBITMQ__VHOST={{ index .Data.data "vhost" }}
+ {{- end -}}
+ volumes:
+ _default:
+ - name: tasks-execution-config
+ mountPath:
+ _default: /etc/app/tasks_execution_config.json
+ subPath:
+ _default: tasks_execution_config.json
+ readOnly:
+ _default: true
+ configMap:
+ name:
+ _default: tasks-execution-config-documentation-v2
+ items:
+ - key: tasks-execution-config-documentation-v2.json
+ path:
+ _default: tasks_execution_config.json
+ defaultMode:
+ _default: "0644"
diff --git a/apps/documentations/base/cde-api-worker-move.yaml b/apps/documentations/base/cde-api-worker-move.yaml
new file mode 100644
index 0000000..efa12a0
--- /dev/null
+++ b/apps/documentations/base/cde-api-worker-move.yaml
@@ -0,0 +1,352 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2
+kind: HelmRelease
+metadata:
+ name: cde-api-worker-move
+ namespace: documentations
+spec:
+ interval: 10m
+ chart:
+ spec:
+ chart: universal-chart
+ version: "0.1.9"
+ sourceRef:
+ kind: HelmRepository
+ name: yc-oci-charts
+ namespace: flux-system
+ interval: 10m
+ install:
+ remediation:
+ retries: 3
+ upgrade:
+ remediation:
+ retries: 3
+ values:
+ global:
+ env: _default
+ services:
+ worker-move:
+ enabled: true
+ serviceAccount:
+ enabled:
+ _default: true
+ name:
+ _default: documentations-vault
+ deployment:
+ enabled: true
+ name:
+ _default: worker-move
+ replicaCount:
+ _default: 1
+ revisionHistoryLimit:
+ _default: 5
+ resources:
+ requests:
+ cpu:
+ _default: 100m
+ memory:
+ _default: 64Mi
+ command:
+ _default: ["/bin/sh", "-ec"]
+ args:
+ _default:
+ - |
+ set -a
+ [ -f /vault/secrets/cde-api-postgres ] && . /vault/secrets/cde-api-postgres
+ [ -f /vault/secrets/cde-api-s3 ] && . /vault/secrets/cde-api-s3
+ [ -f /vault/secrets/cde-api-zeebe ] && . /vault/secrets/cde-api-zeebe
+ [ -f /vault/secrets/cde-api-rabbitmq ] && . /vault/secrets/cde-api-rabbitmq
+ set +a
+ exec /opt/worker
+ image:
+ name:
+ _default: cr.yandex/crp3ccidau046kdj8g9q/cde-api-worker-move:prod_c9bc246
+ pullPolicy:
+ _default: IfNotPresent
+ service:
+ enabled: false
+ imagePullSecrets:
+ enabled:
+ _default: true
+ name:
+ _default: regcred
+ envs:
+ - name: CDE_API_EAV_HOST
+ value:
+ _default: "http://backend-svc.eav.svc.cluster.local:80"
+ - name: CDE_API_APP_NAME
+ value:
+ _default: "worker-move"
+ - name: CDE_API_SENTRY_DSN
+ value:
+ _default: ""
+ - name: CDE_API_SENTRY_ENVIRONMENT
+ value:
+ _default: ""
+ - name: CDE_API_LOG_LEVEL
+ value:
+ _default: "info"
+ - name: CDE_API_OBSERVABILITY_ENABLE
+ value:
+ _default: "true"
+ - name: CDE_API_OBSERVABILITY_HOST
+ value:
+ _default: "signoz-otel-collector-external.signoz.svc.cluster.local"
+ - name: CDE_API_OBSERVABILITY_PORT
+ value:
+ _default: "4317"
+ - name: CDE_API_S3_MAX_SINGLE_UPLOAD_SIZE
+ value:
+ _default: "5368709120"
+ - name: CDE_API_S3_MAX_PART_SIZE
+ value:
+ _default: "524288000"
+ - name: CDE_API_S3_UPLOAD_STALL_TIMEOUT
+ value:
+ _default: "10m"
+ - name: CDE_API_OBSERVABILITY_SERVICE_NAME
+ value:
+ _default: "worker-move"
+ - name: CDE_API_SYSTEMLOG_BASE_URL
+ value:
+ _default: "http://backend-svc.system-log.svc.cluster.local:80"
+ - name: CDE_API_SYSTEMLOG_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_DATABASE__SSLMODE
+ value:
+ _default: "disable"
+ - name: CDE_API_DATABASE__INSECURE_SKIP_TLS
+ value:
+ _default: "false"
+ - name: CDE_API_DATABASE_MAX_CONN_LIFETIME
+ value:
+ _default: "30m"
+ - name: CDE_API_DATABASE_MAX_CONN_IDLE_TIME
+ value:
+ _default: "10m"
+ - name: CDE_API_DATABASE_HEALTH_CHECK_PERIOD
+ value:
+ _default: "30s"
+ - name: CDE_API_DATABASE_POOL_SIZE
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__SSL
+ value:
+ _default: "false"
+ - name: CDE_API_REDIS__POOL_SIZE
+ value:
+ _default: "5"
+ - name: CDE_API_REDIS__MIN_IDLE_CONNS
+ value:
+ _default: "1"
+ - name: CDE_API_REDIS__DIAL_TIMEOUT_MS
+ value:
+ _default: "5000"
+ - name: CDE_API_REDIS__READ_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__WRITE_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__DEFAULT_TTL_MINUTES
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__PERMISSION_CACHE_ENABLED
+ value:
+ _default: "false"
+ - name: CDE_API_S3_USE_SSL
+ value:
+ _default: "true"
+ - name: CDE_API_S3_BUCKET_LOOKUP
+ value:
+ _default: "auto"
+ - name: CDE_API_S3_INSECURE_SKIP_TLS
+ value:
+ _default: "true"
+ - name: CDE_API_S3_CHECK_BUCKET
+ value:
+ _default: "false"
+ - name: CDE_API_S3_BUCKET_NAME
+ value:
+ _default: "documentations-prod"
+ - name: CDE_API_ZEEBE_USE_PLAINTEXT
+ value:
+ _default: "true"
+ - name: CDE_API_MAILER_BASE_URL
+ value:
+ _default: "http://mailer-service.mailer:8000"
+ - name: CDE_API_MAILER_FROM_EMAIL
+ value:
+ _default: "noreply@sarex.io"
+ - name: CDE_API_WORKFLOW_BASE_URL
+ value:
+ _default: "http://backend-svc.processing.svc.cluster.local:80"
+ - name: CDE_API_WORKFLOW_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_WORKFLOW_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_BIMAPI_URL
+ value:
+ _default: "http://backend-svc.bim.svc.cluster.local:80"
+ - name: CDE_API_BIMAPI_V2_URL
+ value:
+ _default: "http://backend-svc.bim.svc.cluster.local:80"
+ - name: CDE_API_BIMAPI_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_BIMAPI_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_BIMAPI_TIMEOUT_V2_MS
+ value:
+ _default: "300000"
+ - name: CDE_API_CONTAINER_REGISTRY
+ value:
+ _default: "cr.yandex/crp3ccidau046kdj8g9q"
+ - name: CDE_API_WORKFLOWS_IMAGES_VERSION
+ value:
+ _default: "master"
+ - name: CDE_API_DJANGO_HOST
+ value:
+ _default: "http://backend-svc.django.svc.cluster.local:80"
+ - name: CDE_API_ENVIRONMENT
+ value:
+ _default: "production"
+ - name: CDE_API_CONVERTED_PDF_TO_S3
+ value:
+ _default: "true"
+ - name: CDE_API_CONVERT_DXF_TO_GEOJSON
+ value:
+ _default: "true"
+ - name: CDE_API_CONVERT_DWG_TO_GEOJSON
+ value:
+ _default: "true"
+ - name: CDE_API_USE_BIMV1_FOR_BIMV2
+ value:
+ _default: "true"
+ - name: CDE_API_LAST_MASTER_BIM
+ value:
+ _default: "36311"
+ - name: CDE_API_LAST_SLAVE_1_BIM
+ value:
+ _default: "94015"
+ - name: CDE_API_LAST_SLAVE_2_BIM
+ value:
+ _default: "135771"
+ - name: CDE_API_USE_BIM_INSERTER
+ value:
+ _default: "true"
+ - name: CDE_API_USE_LEGACY_BIM_FLOW
+ value:
+ _default: "0"
+ - name: CDE_API_DOCUMENTATION_V2_URL
+ value:
+ _default: "http://backend-api-svc.documentations.svc.cluster.local:80"
+ - name: CDE_API_INTERNAL_URL
+ value:
+ _default: "http://cde-api.documentations:8000"
+ - name: CDE_API_FLOWS_URL
+ value:
+ _default: "http://backend-svc.flows.svc.cluster.local:80"
+ - name: CDE_API_TRANSMITTALS_URL
+ value:
+ _default: "http://transmittal-service.transmittal.svc.cluster.local:80"
+ - name: CDE_API_WORKFLOWS_CONFIG_FILEPATH
+ value:
+ _default: "/etc/app/tasks_execution_config.json"
+ - name: CDE_API_WORKSPACE_BASE_URL
+ value:
+ _default: "http://backend-svc.workspaces.svc.cluster.local:80"
+ - name: CDE_API_WORKSPACE_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_WORKSPACE_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_RABBITMQ__MARKS_ROUTING_KEY
+ value:
+ _default: "pdf_markings_input"
+ - name: CDE_API_RABBITMQ__HASHER_ROUTING_KEY
+ value:
+ _default: "hash.compute.normal"
+ - name: CDE_API_RABBITMQ__HASHER_EXCHANGE
+ value:
+ _default: "hash.compute"
+ - name: CDE_API_MOVE_WORKER_JOBS
+ value:
+ _default: ""
+ - name: CDE_API_MOVE_JOB_TIMEOUT_MINUTES
+ value:
+ _default: "30"
+ - name: CDE_API_REDIS__HOST
+ value:
+ _default: "redis"
+ - name: CDE_API_REDIS__PORT
+ value:
+ _default: "6379"
+ - name: CDE_API_RABBITMQ__HOST
+ value:
+ _default: "rabbitmq.rabbitmq.svc.cluster.local"
+ - name: CDE_API_RABBITMQ__PORT
+ value:
+ _default: "5672"
+ podAnnotations:
+ _default:
+ traffic.sidecar.istio.io/excludeOutboundPorts: "4317,4318,9411,8200"
+ vault.hashicorp.com/agent-init-first: "true"
+ vault.hashicorp.com/agent-inject: "true"
+ vault.hashicorp.com/agent-pre-populate-only: "true"
+ vault.hashicorp.com/auth-path: auth/kubernetes
+ vault.hashicorp.com/role: documentations
+ vault.hashicorp.com/agent-inject-secret-cde-api-postgres: secrets/data/apps/documentations/postgres
+ vault.hashicorp.com/agent-inject-template-cde-api-postgres: |-
+ {{- with secret "secrets/data/apps/documentations/postgres" -}}
+ CDE_API_DATABASE__HOST={{ index .Data.data "host" }}
+ CDE_API_DATABASE__PORT={{ index .Data.data "port" }}
+ CDE_API_DATABASE__NAME={{ index .Data.data "database" }}
+ CDE_API_DATABASE__USER={{ index .Data.data "username" }}
+ CDE_API_DATABASE__PASSWORD={{ index .Data.data "password" }}
+ {{- end -}}
+ vault.hashicorp.com/agent-inject-secret-cde-api-s3: secrets/data/minio/apps/documentations
+ vault.hashicorp.com/agent-inject-template-cde-api-s3: |-
+ {{- with secret "secrets/data/minio/apps/documentations" -}}
+ CDE_API_S3_ENDPOINT={{ index .Data.data.client "endpoint" }}
+ CDE_API_S3_ACCESS_KEY={{ index .Data.data "access_key" }}
+ CDE_API_S3_SECRET_KEY={{ index .Data.data "secret_key" }}
+ {{- end -}}
+ vault.hashicorp.com/agent-inject-secret-cde-api-zeebe: secrets/data/apps/cde-api/zeebe
+ vault.hashicorp.com/agent-inject-template-cde-api-zeebe: |-
+ {{- with secret "secrets/data/apps/cde-api/zeebe" -}}
+ CDE_API_ZEEBE_GATEWAY_ADDRESS={{ index .Data.data "gateway_address" }}
+ CDE_API_ZEEBE_CLIENT_ID={{ index .Data.data "client_id" }}
+ CDE_API_ZEEBE_CLIENT_SECRET={{ index .Data.data "client_secret" }}
+ CDE_API_ZEEBE_AUTH_SERVER_URL={{ index .Data.data "auth_server_url" }}
+ {{- end -}}
+ vault.hashicorp.com/agent-inject-secret-cde-api-rabbitmq: secrets/data/rabbitmq/apps/cde
+ vault.hashicorp.com/agent-inject-template-cde-api-rabbitmq: |-
+ {{- with secret "secrets/data/rabbitmq/apps/cde" -}}
+ CDE_API_RABBITMQ__USER={{ index .Data.data "username" }}
+ CDE_API_RABBITMQ__PASSWORD={{ index .Data.data "password" }}
+ CDE_API_RABBITMQ__VHOST={{ index .Data.data "vhost" }}
+ {{- end -}}
+ volumes:
+ _default:
+ - name: tasks-execution-config
+ mountPath:
+ _default: /etc/app/tasks_execution_config.json
+ subPath:
+ _default: tasks_execution_config.json
+ readOnly:
+ _default: true
+ configMap:
+ name:
+ _default: tasks-execution-config-documentation-v2
+ items:
+ - key: tasks-execution-config-documentation-v2.json
+ path:
+ _default: tasks_execution_config.json
+ defaultMode:
+ _default: "0644"
diff --git a/apps/documentations/base/cde-api-worker-s32d-create-upload.yaml b/apps/documentations/base/cde-api-worker-s32d-create-upload.yaml
new file mode 100644
index 0000000..ecb4a34
--- /dev/null
+++ b/apps/documentations/base/cde-api-worker-s32d-create-upload.yaml
@@ -0,0 +1,251 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2
+kind: HelmRelease
+metadata:
+ name: cde-api-worker-s32d-create-upload
+ namespace: documentations
+spec:
+ interval: 10m
+ chart:
+ spec:
+ chart: universal-chart
+ version: "0.1.9"
+ sourceRef:
+ kind: HelmRepository
+ name: yc-oci-charts
+ namespace: flux-system
+ interval: 10m
+ install:
+ remediation:
+ retries: 3
+ upgrade:
+ remediation:
+ retries: 3
+ values:
+ global:
+ env: _default
+ services:
+ worker-s32d-create-upload:
+ enabled: true
+ serviceAccount:
+ enabled:
+ _default: true
+ name:
+ _default: documentations-vault
+ deployment:
+ enabled: true
+ name:
+ _default: worker-s32d-create-upload
+ replicaCount:
+ _default: 1
+ revisionHistoryLimit:
+ _default: 5
+ resources:
+ requests:
+ cpu:
+ _default: 200m
+ memory:
+ _default: 256Mi
+ command:
+ _default: ["/bin/sh", "-ec"]
+ args:
+ _default:
+ - |
+ set -a
+ [ -f /vault/secrets/cde-api-postgres ] && . /vault/secrets/cde-api-postgres
+ [ -f /vault/secrets/cde-api-s3 ] && . /vault/secrets/cde-api-s3
+ [ -f /vault/secrets/cde-api-zeebe ] && . /vault/secrets/cde-api-zeebe
+ set +a
+ exec /opt/worker
+ image:
+ name:
+ _default: cr.yandex/crp3ccidau046kdj8g9q/cde-api-worker-s32d-create-upload:prod_c9bc246
+ pullPolicy:
+ _default: IfNotPresent
+ service:
+ enabled: false
+ imagePullSecrets:
+ enabled:
+ _default: true
+ name:
+ _default: regcred
+ envs:
+ - name: CDE_API_EAV_HOST
+ value:
+ _default: "http://backend-svc.eav.svc.cluster.local:80"
+ - name: CDE_API_APP_NAME
+ value:
+ _default: "worker-s32d-create-upload"
+ - name: CDE_API_SENTRY_DSN
+ value:
+ _default: ""
+ - name: CDE_API_SENTRY_ENVIRONMENT
+ value:
+ _default: ""
+ - name: CDE_API_LOG_LEVEL
+ value:
+ _default: "info"
+ - name: CDE_API_OBSERVABILITY_ENABLE
+ value:
+ _default: "true"
+ - name: CDE_API_OBSERVABILITY_HOST
+ value:
+ _default: "signoz-otel-collector-external.signoz.svc.cluster.local"
+ - name: CDE_API_OBSERVABILITY_PORT
+ value:
+ _default: "4317"
+ - name: CDE_API_S3_MAX_SINGLE_UPLOAD_SIZE
+ value:
+ _default: "5368709120"
+ - name: CDE_API_S3_MAX_PART_SIZE
+ value:
+ _default: "524288000"
+ - name: CDE_API_S3_UPLOAD_STALL_TIMEOUT
+ value:
+ _default: "10m"
+ - name: CDE_API_OBSERVABILITY_SERVICE_NAME
+ value:
+ _default: "worker-s32d-create-upload"
+ - name: CDE_API_DATABASE__SSLMODE
+ value:
+ _default: "disable"
+ - name: CDE_API_DATABASE__INSECURE_SKIP_TLS
+ value:
+ _default: "false"
+ - name: CDE_API_DATABASE_MAX_CONN_LIFETIME
+ value:
+ _default: "30m"
+ - name: CDE_API_DATABASE_MAX_CONN_IDLE_TIME
+ value:
+ _default: "10m"
+ - name: CDE_API_DATABASE_HEALTH_CHECK_PERIOD
+ value:
+ _default: "30s"
+ - name: CDE_API_DATABASE_POOL_SIZE
+ value:
+ _default: "3"
+ - name: CDE_API_REDIS__SSL
+ value:
+ _default: "false"
+ - name: CDE_API_REDIS__POOL_SIZE
+ value:
+ _default: "5"
+ - name: CDE_API_REDIS__MIN_IDLE_CONNS
+ value:
+ _default: "1"
+ - name: CDE_API_REDIS__DIAL_TIMEOUT_MS
+ value:
+ _default: "5000"
+ - name: CDE_API_REDIS__READ_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__WRITE_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__DEFAULT_TTL_MINUTES
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__PERMISSION_CACHE_ENABLED
+ value:
+ _default: "false"
+ - name: CDE_API_S3_USE_SSL
+ value:
+ _default: "true"
+ - name: CDE_API_S3_BUCKET_LOOKUP
+ value:
+ _default: "auto"
+ - name: CDE_API_S3_INSECURE_SKIP_TLS
+ value:
+ _default: "true"
+ - name: CDE_API_S3_CHECK_BUCKET
+ value:
+ _default: "false"
+ - name: CDE_API_S3_BUCKET_NAME
+ value:
+ _default: "documentations-prod"
+ - name: CDE_API_ZEEBE_USE_PLAINTEXT
+ value:
+ _default: "true"
+ - name: CDE_API_S32D_READERAT_BLOCK_SIZE_MB
+ value:
+ _default: "8"
+ - name: CDE_API_S32D_READERAT_CACHE_BLOCKS
+ value:
+ _default: "8"
+ - name: CDE_API_S32D_WORKER_CREATE_UPLOAD_TIMEOUT_MIN
+ value:
+ _default: "240"
+ - name: CDE_API_S32D_WORKER_CREATE_UPLOAD_MAX_JOBS
+ value:
+ _default: "2"
+ - name: CDE_API_MAILER_BASE_URL
+ value:
+ _default: "http://mailer-service.mailer:8000"
+ - name: CDE_API_MAILER_FROM_EMAIL
+ value:
+ _default: "noreply@sarex.io"
+ - name: CDE_API_FLOWS_URL
+ value:
+ _default: "http://backend-svc.flows.svc.cluster.local:80"
+ - name: CDE_API_TRANSMITTALS_URL
+ value:
+ _default: "http://transmittal-service.transmittal.svc.cluster.local:80"
+ - name: CDE_API_WORKFLOWS_CONFIG_FILEPATH
+ value:
+ _default: "/etc/app/tasks_execution_config.json"
+ - name: CDE_API_REDIS__HOST
+ value:
+ _default: "redis"
+ - name: CDE_API_REDIS__PORT
+ value:
+ _default: "6379"
+ podAnnotations:
+ _default:
+ traffic.sidecar.istio.io/excludeOutboundPorts: "4317,4318,9411,8200"
+ vault.hashicorp.com/agent-init-first: "true"
+ vault.hashicorp.com/agent-inject: "true"
+ vault.hashicorp.com/agent-pre-populate-only: "true"
+ vault.hashicorp.com/auth-path: auth/kubernetes
+ vault.hashicorp.com/role: documentations
+ vault.hashicorp.com/agent-inject-secret-cde-api-postgres: secrets/data/apps/documentations/postgres
+ vault.hashicorp.com/agent-inject-template-cde-api-postgres: |-
+ {{- with secret "secrets/data/apps/documentations/postgres" -}}
+ CDE_API_DATABASE__HOST={{ index .Data.data "host" }}
+ CDE_API_DATABASE__PORT={{ index .Data.data "port" }}
+ CDE_API_DATABASE__NAME={{ index .Data.data "database" }}
+ CDE_API_DATABASE__USER={{ index .Data.data "username" }}
+ CDE_API_DATABASE__PASSWORD={{ index .Data.data "password" }}
+ {{- end -}}
+ vault.hashicorp.com/agent-inject-secret-cde-api-s3: secrets/data/minio/apps/documentations
+ vault.hashicorp.com/agent-inject-template-cde-api-s3: |-
+ {{- with secret "secrets/data/minio/apps/documentations" -}}
+ CDE_API_S3_ENDPOINT={{ index .Data.data.client "endpoint" }}
+ CDE_API_S3_ACCESS_KEY={{ index .Data.data "access_key" }}
+ CDE_API_S3_SECRET_KEY={{ index .Data.data "secret_key" }}
+ {{- end -}}
+ vault.hashicorp.com/agent-inject-secret-cde-api-zeebe: secrets/data/apps/cde-api/zeebe
+ vault.hashicorp.com/agent-inject-template-cde-api-zeebe: |-
+ {{- with secret "secrets/data/apps/cde-api/zeebe" -}}
+ CDE_API_ZEEBE_GATEWAY_ADDRESS={{ index .Data.data "gateway_address" }}
+ CDE_API_ZEEBE_CLIENT_ID={{ index .Data.data "client_id" }}
+ CDE_API_ZEEBE_CLIENT_SECRET={{ index .Data.data "client_secret" }}
+ CDE_API_ZEEBE_AUTH_SERVER_URL={{ index .Data.data "auth_server_url" }}
+ {{- end -}}
+ volumes:
+ _default:
+ - name: tasks-execution-config
+ mountPath:
+ _default: /etc/app/tasks_execution_config.json
+ subPath:
+ _default: tasks_execution_config.json
+ readOnly:
+ _default: true
+ configMap:
+ name:
+ _default: tasks-execution-config-documentation-v2
+ items:
+ - key: tasks-execution-config-documentation-v2.json
+ path:
+ _default: tasks_execution_config.json
+ defaultMode:
+ _default: "0644"
diff --git a/apps/documentations/base/cde-api-worker-s32d-handle-error.yaml b/apps/documentations/base/cde-api-worker-s32d-handle-error.yaml
new file mode 100644
index 0000000..2433a1f
--- /dev/null
+++ b/apps/documentations/base/cde-api-worker-s32d-handle-error.yaml
@@ -0,0 +1,245 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2
+kind: HelmRelease
+metadata:
+ name: cde-api-worker-s32d-handle-error
+ namespace: documentations
+spec:
+ interval: 10m
+ chart:
+ spec:
+ chart: universal-chart
+ version: "0.1.9"
+ sourceRef:
+ kind: HelmRepository
+ name: yc-oci-charts
+ namespace: flux-system
+ interval: 10m
+ install:
+ remediation:
+ retries: 3
+ upgrade:
+ remediation:
+ retries: 3
+ values:
+ global:
+ env: _default
+ services:
+ worker-s32d-handle-error:
+ enabled: true
+ serviceAccount:
+ enabled:
+ _default: true
+ name:
+ _default: documentations-vault
+ deployment:
+ enabled: true
+ name:
+ _default: worker-s32d-handle-error
+ replicaCount:
+ _default: 1
+ revisionHistoryLimit:
+ _default: 5
+ resources:
+ requests:
+ cpu:
+ _default: 50m
+ memory:
+ _default: 64Mi
+ command:
+ _default: ["/bin/sh", "-ec"]
+ args:
+ _default:
+ - |
+ set -a
+ [ -f /vault/secrets/cde-api-postgres ] && . /vault/secrets/cde-api-postgres
+ [ -f /vault/secrets/cde-api-s3 ] && . /vault/secrets/cde-api-s3
+ [ -f /vault/secrets/cde-api-zeebe ] && . /vault/secrets/cde-api-zeebe
+ set +a
+ exec /opt/worker
+ image:
+ name:
+ _default: cr.yandex/crp3ccidau046kdj8g9q/cde-api-worker-s32d-handle-error:prod_c9bc246
+ pullPolicy:
+ _default: IfNotPresent
+ service:
+ enabled: false
+ imagePullSecrets:
+ enabled:
+ _default: true
+ name:
+ _default: regcred
+ envs:
+ - name: CDE_API_EAV_HOST
+ value:
+ _default: "http://backend-svc.eav.svc.cluster.local:80"
+ - name: CDE_API_APP_NAME
+ value:
+ _default: "worker-s32d-handle-error"
+ - name: CDE_API_SENTRY_DSN
+ value:
+ _default: ""
+ - name: CDE_API_SENTRY_ENVIRONMENT
+ value:
+ _default: ""
+ - name: CDE_API_LOG_LEVEL
+ value:
+ _default: "info"
+ - name: CDE_API_OBSERVABILITY_ENABLE
+ value:
+ _default: "true"
+ - name: CDE_API_OBSERVABILITY_HOST
+ value:
+ _default: "signoz-otel-collector-external.signoz.svc.cluster.local"
+ - name: CDE_API_OBSERVABILITY_PORT
+ value:
+ _default: "4317"
+ - name: CDE_API_S3_MAX_SINGLE_UPLOAD_SIZE
+ value:
+ _default: "5368709120"
+ - name: CDE_API_S3_MAX_PART_SIZE
+ value:
+ _default: "524288000"
+ - name: CDE_API_S3_UPLOAD_STALL_TIMEOUT
+ value:
+ _default: "10m"
+ - name: CDE_API_OBSERVABILITY_SERVICE_NAME
+ value:
+ _default: "worker-s32d-handle-error"
+ - name: CDE_API_DATABASE__SSLMODE
+ value:
+ _default: "disable"
+ - name: CDE_API_DATABASE__INSECURE_SKIP_TLS
+ value:
+ _default: "false"
+ - name: CDE_API_DATABASE_MAX_CONN_LIFETIME
+ value:
+ _default: "30m"
+ - name: CDE_API_DATABASE_MAX_CONN_IDLE_TIME
+ value:
+ _default: "10m"
+ - name: CDE_API_DATABASE_HEALTH_CHECK_PERIOD
+ value:
+ _default: "30s"
+ - name: CDE_API_DATABASE_POOL_SIZE
+ value:
+ _default: "2"
+ - name: CDE_API_REDIS__SSL
+ value:
+ _default: "false"
+ - name: CDE_API_REDIS__POOL_SIZE
+ value:
+ _default: "3"
+ - name: CDE_API_REDIS__MIN_IDLE_CONNS
+ value:
+ _default: "1"
+ - name: CDE_API_REDIS__DIAL_TIMEOUT_MS
+ value:
+ _default: "5000"
+ - name: CDE_API_REDIS__READ_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__WRITE_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__DEFAULT_TTL_MINUTES
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__PERMISSION_CACHE_ENABLED
+ value:
+ _default: "false"
+ - name: CDE_API_S3_USE_SSL
+ value:
+ _default: "true"
+ - name: CDE_API_S3_BUCKET_LOOKUP
+ value:
+ _default: "auto"
+ - name: CDE_API_S3_INSECURE_SKIP_TLS
+ value:
+ _default: "true"
+ - name: CDE_API_S3_CHECK_BUCKET
+ value:
+ _default: "false"
+ - name: CDE_API_S3_BUCKET_NAME
+ value:
+ _default: "documentations-prod"
+ - name: CDE_API_ZEEBE_USE_PLAINTEXT
+ value:
+ _default: "true"
+ - name: CDE_API_S32D_WORKER_HANDLE_ERROR_TIMEOUT_MIN
+ value:
+ _default: "10"
+ - name: CDE_API_S32D_WORKER_HANDLE_ERROR_MAX_JOBS
+ value:
+ _default: "4"
+ - name: CDE_API_MAILER_BASE_URL
+ value:
+ _default: "http://mailer-service.mailer:8000"
+ - name: CDE_API_MAILER_FROM_EMAIL
+ value:
+ _default: "noreply@sarex.io"
+ - name: CDE_API_FLOWS_URL
+ value:
+ _default: "http://backend-svc.flows.svc.cluster.local:80"
+ - name: CDE_API_TRANSMITTALS_URL
+ value:
+ _default: "http://transmittal-service.transmittal.svc.cluster.local:80"
+ - name: CDE_API_WORKFLOWS_CONFIG_FILEPATH
+ value:
+ _default: "/etc/app/tasks_execution_config.json"
+ - name: CDE_API_REDIS__HOST
+ value:
+ _default: "redis"
+ - name: CDE_API_REDIS__PORT
+ value:
+ _default: "6379"
+ podAnnotations:
+ _default:
+ traffic.sidecar.istio.io/excludeOutboundPorts: "4317,4318,9411,8200"
+ vault.hashicorp.com/agent-init-first: "true"
+ vault.hashicorp.com/agent-inject: "true"
+ vault.hashicorp.com/agent-pre-populate-only: "true"
+ vault.hashicorp.com/auth-path: auth/kubernetes
+ vault.hashicorp.com/role: documentations
+ vault.hashicorp.com/agent-inject-secret-cde-api-postgres: secrets/data/apps/documentations/postgres
+ vault.hashicorp.com/agent-inject-template-cde-api-postgres: |-
+ {{- with secret "secrets/data/apps/documentations/postgres" -}}
+ CDE_API_DATABASE__HOST={{ index .Data.data "host" }}
+ CDE_API_DATABASE__PORT={{ index .Data.data "port" }}
+ CDE_API_DATABASE__NAME={{ index .Data.data "database" }}
+ CDE_API_DATABASE__USER={{ index .Data.data "username" }}
+ CDE_API_DATABASE__PASSWORD={{ index .Data.data "password" }}
+ {{- end -}}
+ vault.hashicorp.com/agent-inject-secret-cde-api-s3: secrets/data/minio/apps/documentations
+ vault.hashicorp.com/agent-inject-template-cde-api-s3: |-
+ {{- with secret "secrets/data/minio/apps/documentations" -}}
+ CDE_API_S3_ENDPOINT={{ index .Data.data.client "endpoint" }}
+ CDE_API_S3_ACCESS_KEY={{ index .Data.data "access_key" }}
+ CDE_API_S3_SECRET_KEY={{ index .Data.data "secret_key" }}
+ {{- end -}}
+ vault.hashicorp.com/agent-inject-secret-cde-api-zeebe: secrets/data/apps/cde-api/zeebe
+ vault.hashicorp.com/agent-inject-template-cde-api-zeebe: |-
+ {{- with secret "secrets/data/apps/cde-api/zeebe" -}}
+ CDE_API_ZEEBE_GATEWAY_ADDRESS={{ index .Data.data "gateway_address" }}
+ CDE_API_ZEEBE_CLIENT_ID={{ index .Data.data "client_id" }}
+ CDE_API_ZEEBE_CLIENT_SECRET={{ index .Data.data "client_secret" }}
+ CDE_API_ZEEBE_AUTH_SERVER_URL={{ index .Data.data "auth_server_url" }}
+ {{- end -}}
+ volumes:
+ _default:
+ - name: tasks-execution-config
+ mountPath:
+ _default: /etc/app/tasks_execution_config.json
+ subPath:
+ _default: tasks_execution_config.json
+ readOnly:
+ _default: true
+ configMap:
+ name:
+ _default: tasks-execution-config-documentation-v2
+ items:
+ - key: tasks-execution-config-documentation-v2.json
+ path:
+ _default: tasks_execution_config.json
+ defaultMode:
+ _default: "0644"
diff --git a/apps/documentations/base/cde-api-worker-s32d-process-workflows.yaml b/apps/documentations/base/cde-api-worker-s32d-process-workflows.yaml
new file mode 100644
index 0000000..ba6f442
--- /dev/null
+++ b/apps/documentations/base/cde-api-worker-s32d-process-workflows.yaml
@@ -0,0 +1,314 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2
+kind: HelmRelease
+metadata:
+ name: cde-api-worker-s32d-process-workflows
+ namespace: documentations
+spec:
+ interval: 10m
+ chart:
+ spec:
+ chart: universal-chart
+ version: "0.1.9"
+ sourceRef:
+ kind: HelmRepository
+ name: yc-oci-charts
+ namespace: flux-system
+ interval: 10m
+ install:
+ remediation:
+ retries: 3
+ upgrade:
+ remediation:
+ retries: 3
+ values:
+ global:
+ env: _default
+ services:
+ worker-s32d-process-workflows:
+ enabled: true
+ serviceAccount:
+ enabled:
+ _default: true
+ name:
+ _default: documentations-vault
+ deployment:
+ enabled: true
+ name:
+ _default: worker-s32d-process-workflows
+ replicaCount:
+ _default: 1
+ revisionHistoryLimit:
+ _default: 5
+ resources:
+ requests:
+ cpu:
+ _default: 200m
+ memory:
+ _default: 256Mi
+ command:
+ _default: ["/bin/sh", "-ec"]
+ args:
+ _default:
+ - |
+ set -a
+ [ -f /vault/secrets/cde-api-postgres ] && . /vault/secrets/cde-api-postgres
+ [ -f /vault/secrets/cde-api-s3 ] && . /vault/secrets/cde-api-s3
+ [ -f /vault/secrets/cde-api-zeebe ] && . /vault/secrets/cde-api-zeebe
+ set +a
+ exec /opt/worker
+ image:
+ name:
+ _default: cr.yandex/crp3ccidau046kdj8g9q/cde-api-worker-s32d-process-workflows:prod_c9bc246
+ pullPolicy:
+ _default: IfNotPresent
+ service:
+ enabled: false
+ imagePullSecrets:
+ enabled:
+ _default: true
+ name:
+ _default: regcred
+ envs:
+ - name: CDE_API_EAV_HOST
+ value:
+ _default: "http://backend-svc.eav.svc.cluster.local:80"
+ - name: CDE_API_APP_NAME
+ value:
+ _default: "worker-s32d-process-workflows"
+ - name: CDE_API_SENTRY_DSN
+ value:
+ _default: ""
+ - name: CDE_API_SENTRY_ENVIRONMENT
+ value:
+ _default: ""
+ - name: CDE_API_LOG_LEVEL
+ value:
+ _default: "info"
+ - name: CDE_API_OBSERVABILITY_ENABLE
+ value:
+ _default: "true"
+ - name: CDE_API_OBSERVABILITY_HOST
+ value:
+ _default: "signoz-otel-collector-external.signoz.svc.cluster.local"
+ - name: CDE_API_OBSERVABILITY_PORT
+ value:
+ _default: "4317"
+ - name: CDE_API_S3_MAX_SINGLE_UPLOAD_SIZE
+ value:
+ _default: "5368709120"
+ - name: CDE_API_S3_MAX_PART_SIZE
+ value:
+ _default: "524288000"
+ - name: CDE_API_S3_UPLOAD_STALL_TIMEOUT
+ value:
+ _default: "10m"
+ - name: CDE_API_OBSERVABILITY_SERVICE_NAME
+ value:
+ _default: "worker-s32d-process-workflows"
+ - name: CDE_API_DATABASE__SSLMODE
+ value:
+ _default: "disable"
+ - name: CDE_API_DATABASE__INSECURE_SKIP_TLS
+ value:
+ _default: "false"
+ - name: CDE_API_DATABASE_MAX_CONN_LIFETIME
+ value:
+ _default: "30m"
+ - name: CDE_API_DATABASE_MAX_CONN_IDLE_TIME
+ value:
+ _default: "10m"
+ - name: CDE_API_DATABASE_HEALTH_CHECK_PERIOD
+ value:
+ _default: "30s"
+ - name: CDE_API_DATABASE_POOL_SIZE
+ value:
+ _default: "3"
+ - name: CDE_API_REDIS__SSL
+ value:
+ _default: "false"
+ - name: CDE_API_REDIS__POOL_SIZE
+ value:
+ _default: "5"
+ - name: CDE_API_REDIS__MIN_IDLE_CONNS
+ value:
+ _default: "1"
+ - name: CDE_API_REDIS__DIAL_TIMEOUT_MS
+ value:
+ _default: "5000"
+ - name: CDE_API_REDIS__READ_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__WRITE_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__DEFAULT_TTL_MINUTES
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__PERMISSION_CACHE_ENABLED
+ value:
+ _default: "false"
+ - name: CDE_API_S3_USE_SSL
+ value:
+ _default: "true"
+ - name: CDE_API_S3_BUCKET_LOOKUP
+ value:
+ _default: "auto"
+ - name: CDE_API_S3_INSECURE_SKIP_TLS
+ value:
+ _default: "true"
+ - name: CDE_API_S3_CHECK_BUCKET
+ value:
+ _default: "false"
+ - name: CDE_API_S3_BUCKET_NAME
+ value:
+ _default: "documentations-prod"
+ - name: CDE_API_ZEEBE_USE_PLAINTEXT
+ value:
+ _default: "true"
+ - name: CDE_API_S32D_WORKER_PROCESS_WORKFLOWS_TIMEOUT_MIN
+ value:
+ _default: "480"
+ - name: CDE_API_S32D_WORKER_PROCESS_WORKFLOWS_MAX_JOBS
+ value:
+ _default: "2"
+ - name: CDE_API_MAILER_BASE_URL
+ value:
+ _default: "http://mailer-service.mailer:8000"
+ - name: CDE_API_MAILER_FROM_EMAIL
+ value:
+ _default: "noreply@sarex.io"
+ - name: CDE_API_WORKFLOW_BASE_URL
+ value:
+ _default: "http://backend-svc.processing.svc.cluster.local:80"
+ - name: CDE_API_WORKFLOW_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_WORKFLOW_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_BIMAPI_URL
+ value:
+ _default: "http://backend-svc.bim.svc.cluster.local:80"
+ - name: CDE_API_BIMAPI_V2_URL
+ value:
+ _default: "http://backend-svc.bim.svc.cluster.local:80"
+ - name: CDE_API_BIMAPI_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_BIMAPI_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_BIMAPI_TIMEOUT_V2_MS
+ value:
+ _default: "300000"
+ - name: CDE_API_CONTAINER_REGISTRY
+ value:
+ _default: "cr.yandex/crp3ccidau046kdj8g9q"
+ - name: CDE_API_WORKFLOWS_IMAGES_VERSION
+ value:
+ _default: "master"
+ - name: CDE_API_DJANGO_HOST
+ value:
+ _default: "http://backend-svc.django.svc.cluster.local:80"
+ - name: CDE_API_ENVIRONMENT
+ value:
+ _default: "production"
+ - name: CDE_API_CONVERTED_PDF_TO_S3
+ value:
+ _default: "true"
+ - name: CDE_API_CONVERT_DXF_TO_GEOJSON
+ value:
+ _default: "true"
+ - name: CDE_API_CONVERT_DWG_TO_GEOJSON
+ value:
+ _default: "true"
+ - name: CDE_API_USE_BIMV1_FOR_BIMV2
+ value:
+ _default: "true"
+ - name: CDE_API_LAST_MASTER_BIM
+ value:
+ _default: "36311"
+ - name: CDE_API_LAST_SLAVE_1_BIM
+ value:
+ _default: "94015"
+ - name: CDE_API_LAST_SLAVE_2_BIM
+ value:
+ _default: "135771"
+ - name: CDE_API_USE_BIM_INSERTER
+ value:
+ _default: "true"
+ - name: CDE_API_USE_LEGACY_BIM_FLOW
+ value:
+ _default: "0"
+ - name: CDE_API_DOCUMENTATION_V2_URL
+ value:
+ _default: "http://backend-api-svc.documentations.svc.cluster.local:80"
+ - name: CDE_API_INTERNAL_URL
+ value:
+ _default: "http://cde-api.documentations:8000"
+ - name: CDE_API_FLOWS_URL
+ value:
+ _default: "http://backend-svc.flows.svc.cluster.local:80"
+ - name: CDE_API_TRANSMITTALS_URL
+ value:
+ _default: "http://transmittal-service.transmittal.svc.cluster.local:80"
+ - name: CDE_API_WORKFLOWS_CONFIG_FILEPATH
+ value:
+ _default: "/etc/app/tasks_execution_config.json"
+ - name: CDE_API_REDIS__HOST
+ value:
+ _default: "redis"
+ - name: CDE_API_REDIS__PORT
+ value:
+ _default: "6379"
+ podAnnotations:
+ _default:
+ traffic.sidecar.istio.io/excludeOutboundPorts: "4317,4318,9411,8200"
+ vault.hashicorp.com/agent-init-first: "true"
+ vault.hashicorp.com/agent-inject: "true"
+ vault.hashicorp.com/agent-pre-populate-only: "true"
+ vault.hashicorp.com/auth-path: auth/kubernetes
+ vault.hashicorp.com/role: documentations
+ vault.hashicorp.com/agent-inject-secret-cde-api-postgres: secrets/data/apps/documentations/postgres
+ vault.hashicorp.com/agent-inject-template-cde-api-postgres: |-
+ {{- with secret "secrets/data/apps/documentations/postgres" -}}
+ CDE_API_DATABASE__HOST={{ index .Data.data "host" }}
+ CDE_API_DATABASE__PORT={{ index .Data.data "port" }}
+ CDE_API_DATABASE__NAME={{ index .Data.data "database" }}
+ CDE_API_DATABASE__USER={{ index .Data.data "username" }}
+ CDE_API_DATABASE__PASSWORD={{ index .Data.data "password" }}
+ {{- end -}}
+ vault.hashicorp.com/agent-inject-secret-cde-api-s3: secrets/data/minio/apps/documentations
+ vault.hashicorp.com/agent-inject-template-cde-api-s3: |-
+ {{- with secret "secrets/data/minio/apps/documentations" -}}
+ CDE_API_S3_ENDPOINT={{ index .Data.data.client "endpoint" }}
+ CDE_API_S3_ACCESS_KEY={{ index .Data.data "access_key" }}
+ CDE_API_S3_SECRET_KEY={{ index .Data.data "secret_key" }}
+ {{- end -}}
+ vault.hashicorp.com/agent-inject-secret-cde-api-zeebe: secrets/data/apps/cde-api/zeebe
+ vault.hashicorp.com/agent-inject-template-cde-api-zeebe: |-
+ {{- with secret "secrets/data/apps/cde-api/zeebe" -}}
+ CDE_API_ZEEBE_GATEWAY_ADDRESS={{ index .Data.data "gateway_address" }}
+ CDE_API_ZEEBE_CLIENT_ID={{ index .Data.data "client_id" }}
+ CDE_API_ZEEBE_CLIENT_SECRET={{ index .Data.data "client_secret" }}
+ CDE_API_ZEEBE_AUTH_SERVER_URL={{ index .Data.data "auth_server_url" }}
+ {{- end -}}
+ volumes:
+ _default:
+ - name: tasks-execution-config
+ mountPath:
+ _default: /etc/app/tasks_execution_config.json
+ subPath:
+ _default: tasks_execution_config.json
+ readOnly:
+ _default: true
+ configMap:
+ name:
+ _default: tasks-execution-config-documentation-v2
+ items:
+ - key: tasks-execution-config-documentation-v2.json
+ path:
+ _default: tasks_execution_config.json
+ defaultMode:
+ _default: "0644"
diff --git a/apps/documentations/base/cde-api-worker-s32d-publish-documents.yaml b/apps/documentations/base/cde-api-worker-s32d-publish-documents.yaml
new file mode 100644
index 0000000..1597ef6
--- /dev/null
+++ b/apps/documentations/base/cde-api-worker-s32d-publish-documents.yaml
@@ -0,0 +1,260 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2
+kind: HelmRelease
+metadata:
+ name: cde-api-worker-s32d-publish-documents
+ namespace: documentations
+spec:
+ interval: 10m
+ chart:
+ spec:
+ chart: universal-chart
+ version: "0.1.9"
+ sourceRef:
+ kind: HelmRepository
+ name: yc-oci-charts
+ namespace: flux-system
+ interval: 10m
+ install:
+ remediation:
+ retries: 3
+ upgrade:
+ remediation:
+ retries: 3
+ values:
+ global:
+ env: _default
+ services:
+ worker-s32d-publish-documents:
+ enabled: true
+ serviceAccount:
+ enabled:
+ _default: true
+ name:
+ _default: documentations-vault
+ deployment:
+ enabled: true
+ name:
+ _default: worker-s32d-publish-documents
+ replicaCount:
+ _default: 1
+ revisionHistoryLimit:
+ _default: 5
+ resources:
+ requests:
+ cpu:
+ _default: 100m
+ memory:
+ _default: 64Mi
+ command:
+ _default: ["/bin/sh", "-ec"]
+ args:
+ _default:
+ - |
+ set -a
+ [ -f /vault/secrets/cde-api-postgres ] && . /vault/secrets/cde-api-postgres
+ [ -f /vault/secrets/cde-api-s3 ] && . /vault/secrets/cde-api-s3
+ [ -f /vault/secrets/cde-api-zeebe ] && . /vault/secrets/cde-api-zeebe
+ set +a
+ exec /opt/worker
+ image:
+ name:
+ _default: cr.yandex/crp3ccidau046kdj8g9q/cde-api-worker-s32d-publish-documents:prod_c9bc246
+ pullPolicy:
+ _default: IfNotPresent
+ service:
+ enabled: false
+ imagePullSecrets:
+ enabled:
+ _default: true
+ name:
+ _default: regcred
+ envs:
+ - name: CDE_API_EAV_HOST
+ value:
+ _default: "http://backend-svc.eav.svc.cluster.local:80"
+ - name: CDE_API_APP_NAME
+ value:
+ _default: "worker-s32d-publish-documents"
+ - name: CDE_API_SENTRY_DSN
+ value:
+ _default: ""
+ - name: CDE_API_SENTRY_ENVIRONMENT
+ value:
+ _default: ""
+ - name: CDE_API_LOG_LEVEL
+ value:
+ _default: "info"
+ - name: CDE_API_OBSERVABILITY_ENABLE
+ value:
+ _default: "true"
+ - name: CDE_API_OBSERVABILITY_HOST
+ value:
+ _default: "signoz-otel-collector-external.signoz.svc.cluster.local"
+ - name: CDE_API_OBSERVABILITY_PORT
+ value:
+ _default: "4317"
+ - name: CDE_API_S3_MAX_SINGLE_UPLOAD_SIZE
+ value:
+ _default: "5368709120"
+ - name: CDE_API_S3_MAX_PART_SIZE
+ value:
+ _default: "524288000"
+ - name: CDE_API_S3_UPLOAD_STALL_TIMEOUT
+ value:
+ _default: "10m"
+ - name: CDE_API_OBSERVABILITY_SERVICE_NAME
+ value:
+ _default: "worker-s32d-publish-documents"
+ - name: CDE_API_DATABASE__SSLMODE
+ value:
+ _default: "disable"
+ - name: CDE_API_DATABASE__INSECURE_SKIP_TLS
+ value:
+ _default: "false"
+ - name: CDE_API_DATABASE_MAX_CONN_LIFETIME
+ value:
+ _default: "30m"
+ - name: CDE_API_DATABASE_MAX_CONN_IDLE_TIME
+ value:
+ _default: "10m"
+ - name: CDE_API_DATABASE_HEALTH_CHECK_PERIOD
+ value:
+ _default: "30s"
+ - name: CDE_API_DATABASE_POOL_SIZE
+ value:
+ _default: "3"
+ - name: CDE_API_REDIS__SSL
+ value:
+ _default: "false"
+ - name: CDE_API_REDIS__POOL_SIZE
+ value:
+ _default: "5"
+ - name: CDE_API_REDIS__MIN_IDLE_CONNS
+ value:
+ _default: "1"
+ - name: CDE_API_REDIS__DIAL_TIMEOUT_MS
+ value:
+ _default: "5000"
+ - name: CDE_API_REDIS__READ_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__WRITE_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__DEFAULT_TTL_MINUTES
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__PERMISSION_CACHE_ENABLED
+ value:
+ _default: "false"
+ - name: CDE_API_S3_USE_SSL
+ value:
+ _default: "true"
+ - name: CDE_API_S3_BUCKET_LOOKUP
+ value:
+ _default: "auto"
+ - name: CDE_API_S3_INSECURE_SKIP_TLS
+ value:
+ _default: "true"
+ - name: CDE_API_S3_CHECK_BUCKET
+ value:
+ _default: "false"
+ - name: CDE_API_S3_BUCKET_NAME
+ value:
+ _default: "documentations-prod"
+ - name: CDE_API_ZEEBE_USE_PLAINTEXT
+ value:
+ _default: "true"
+ - name: CDE_API_S32D_WORKER_PUBLISH_DOCUMENTS_TIMEOUT_MIN
+ value:
+ _default: "10"
+ - name: CDE_API_S32D_WORKER_PUBLISH_DOCUMENTS_MAX_JOBS
+ value:
+ _default: "2"
+ - name: CDE_API_MAILER_BASE_URL
+ value:
+ _default: "http://mailer-service.mailer:8000"
+ - name: CDE_API_MAILER_FROM_EMAIL
+ value:
+ _default: "noreply@sarex.io"
+ - name: CDE_API_SYSTEMLOG_BASE_URL
+ value:
+ _default: "http://backend-svc.system-log.svc.cluster.local:80"
+ - name: CDE_API_SYSTEMLOG_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_FLOWS_URL
+ value:
+ _default: "http://backend-svc.flows.svc.cluster.local:80"
+ - name: CDE_API_TRANSMITTALS_URL
+ value:
+ _default: "http://transmittal-service.transmittal.svc.cluster.local:80"
+ - name: CDE_API_WORKSPACE_BASE_URL
+ value:
+ _default: "http://backend-svc.workspaces.svc.cluster.local:80"
+ - name: CDE_API_WORKSPACE_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_WORKSPACE_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_WORKFLOWS_CONFIG_FILEPATH
+ value:
+ _default: "/etc/app/tasks_execution_config.json"
+ - name: CDE_API_REDIS__HOST
+ value:
+ _default: "redis"
+ - name: CDE_API_REDIS__PORT
+ value:
+ _default: "6379"
+ podAnnotations:
+ _default:
+ traffic.sidecar.istio.io/excludeOutboundPorts: "4317,4318,9411,8200"
+ vault.hashicorp.com/agent-init-first: "true"
+ vault.hashicorp.com/agent-inject: "true"
+ vault.hashicorp.com/agent-pre-populate-only: "true"
+ vault.hashicorp.com/auth-path: auth/kubernetes
+ vault.hashicorp.com/role: documentations
+ vault.hashicorp.com/agent-inject-secret-cde-api-postgres: secrets/data/apps/documentations/postgres
+ vault.hashicorp.com/agent-inject-template-cde-api-postgres: |-
+ {{- with secret "secrets/data/apps/documentations/postgres" -}}
+ CDE_API_DATABASE__HOST={{ index .Data.data "host" }}
+ CDE_API_DATABASE__PORT={{ index .Data.data "port" }}
+ CDE_API_DATABASE__NAME={{ index .Data.data "database" }}
+ CDE_API_DATABASE__USER={{ index .Data.data "username" }}
+ CDE_API_DATABASE__PASSWORD={{ index .Data.data "password" }}
+ {{- end -}}
+ vault.hashicorp.com/agent-inject-secret-cde-api-s3: secrets/data/minio/apps/documentations
+ vault.hashicorp.com/agent-inject-template-cde-api-s3: |-
+ {{- with secret "secrets/data/minio/apps/documentations" -}}
+ CDE_API_S3_ENDPOINT={{ index .Data.data.client "endpoint" }}
+ CDE_API_S3_ACCESS_KEY={{ index .Data.data "access_key" }}
+ CDE_API_S3_SECRET_KEY={{ index .Data.data "secret_key" }}
+ {{- end -}}
+ vault.hashicorp.com/agent-inject-secret-cde-api-zeebe: secrets/data/apps/cde-api/zeebe
+ vault.hashicorp.com/agent-inject-template-cde-api-zeebe: |-
+ {{- with secret "secrets/data/apps/cde-api/zeebe" -}}
+ CDE_API_ZEEBE_GATEWAY_ADDRESS={{ index .Data.data "gateway_address" }}
+ CDE_API_ZEEBE_CLIENT_ID={{ index .Data.data "client_id" }}
+ CDE_API_ZEEBE_CLIENT_SECRET={{ index .Data.data "client_secret" }}
+ CDE_API_ZEEBE_AUTH_SERVER_URL={{ index .Data.data "auth_server_url" }}
+ {{- end -}}
+ volumes:
+ _default:
+ - name: tasks-execution-config
+ mountPath:
+ _default: /etc/app/tasks_execution_config.json
+ subPath:
+ _default: tasks_execution_config.json
+ readOnly:
+ _default: true
+ configMap:
+ name:
+ _default: tasks-execution-config-documentation-v2
+ items:
+ - key: tasks-execution-config-documentation-v2.json
+ path:
+ _default: tasks_execution_config.json
+ defaultMode:
+ _default: "0644"
diff --git a/apps/documentations/base/cde-api.yaml b/apps/documentations/base/cde-api.yaml
new file mode 100644
index 0000000..9612bde
--- /dev/null
+++ b/apps/documentations/base/cde-api.yaml
@@ -0,0 +1,442 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2
+kind: HelmRelease
+metadata:
+ name: cde-api
+ namespace: documentations
+spec:
+ interval: 10m
+ chart:
+ spec:
+ chart: universal-chart
+ version: "0.1.9"
+ sourceRef:
+ kind: HelmRepository
+ name: yc-oci-charts
+ namespace: flux-system
+ interval: 10m
+ install:
+ remediation:
+ retries: 3
+ upgrade:
+ remediation:
+ retries: 3
+ values:
+ global:
+ env: _default
+ services:
+ cde-api:
+ enabled: true
+ serviceAccount:
+ enabled:
+ _default: true
+ name:
+ _default: documentations-vault
+ deployment:
+ enabled: true
+ name:
+ _default: cde-api
+ replicaCount:
+ _default: 1
+ revisionHistoryLimit:
+ _default: 5
+ port:
+ _default: 8000
+ resources:
+ requests:
+ cpu:
+ _default: 200m
+ memory:
+ _default: 256Mi
+ command:
+ _default: ["/bin/sh", "-ec"]
+ args:
+ _default:
+ - |
+ set -a
+ [ -f /vault/secrets/cde-api-postgres ] && . /vault/secrets/cde-api-postgres
+ [ -f /vault/secrets/cde-api-s3 ] && . /vault/secrets/cde-api-s3
+ [ -f /vault/secrets/cde-api-zeebe ] && . /vault/secrets/cde-api-zeebe
+ [ -f /vault/secrets/cde-api-rabbitmq ] && . /vault/secrets/cde-api-rabbitmq
+ [ -f /vault/secrets/cde-api-django-auth ] && . /vault/secrets/cde-api-django-auth
+ set +a
+ [ -f /vault/secrets/cde-api-rsa-public ] && export CDE_API_PUBLIC_KEY="$(cat /vault/secrets/cde-api-rsa-public)"
+ exec /opt/main
+ image:
+ name:
+ _default: cr.yandex/crp3ccidau046kdj8g9q/cde-api:prod_c9bc246
+ pullPolicy:
+ _default: IfNotPresent
+ service:
+ enabled: true
+ name:
+ _default: cde-api
+ type:
+ _default: ClusterIP
+ port:
+ _default: 8000
+ targetPort:
+ _default: 8000
+ portName:
+ _default: http
+ imagePullSecrets:
+ enabled:
+ _default: true
+ name:
+ _default: regcred
+ envs:
+ - name: CDE_API_RESOURCES_BASE_URL
+ value:
+ _default: "http://iams.iam.svc.cluster.local:8080"
+ - name: CDE_API_RESOURCES_TIMEOUT
+ value:
+ _default: "10s"
+ - name: CDE_API_APP_NAME
+ value:
+ _default: "cde-api"
+ - name: CDE_API_SENTRY_DSN
+ value:
+ _default: ""
+ - name: CDE_API_SENTRY_ENVIRONMENT
+ value:
+ _default: ""
+ - name: CDE_API_LOG_LEVEL
+ value:
+ _default: "debug"
+ - name: CDE_API_HTTP_PORT
+ value:
+ _default: "8000"
+ - name: CDE_API_HTTP_READ_TIMEOUT
+ value:
+ _default: "0s"
+ - name: CDE_API_HTTP_WRITE_TIMEOUT
+ value:
+ _default: "0s"
+ - name: CDE_API_HTTP_IDLE_TIMEOUT
+ value:
+ _default: "120s"
+ - name: CDE_API_HTTP_READ_BUFFER_SIZE
+ value:
+ _default: "96"
+ - name: CDE_API_OBSERVABILITY_ENABLE
+ value:
+ _default: "true"
+ - name: CDE_API_OBSERVABILITY_HOST
+ value:
+ _default: "signoz-otel-collector-external.signoz.svc.cluster.local"
+ - name: CDE_API_OBSERVABILITY_PORT
+ value:
+ _default: "4317"
+ - name: CDE_API_S3_MAX_SINGLE_UPLOAD_SIZE
+ value:
+ _default: "5368709120"
+ - name: CDE_API_S3_MAX_PART_SIZE
+ value:
+ _default: "524288000"
+ - name: CDE_API_S3_UPLOAD_STALL_TIMEOUT
+ value:
+ _default: "10m"
+ - name: CDE_API_PUBLIC_LINK_HOST
+ value:
+ _default: "https://document-link-srx.wb.ru"
+ - name: CDE_API_WORKFLOW_BASE_URL
+ value:
+ _default: "http://backend-svc.processing.svc.cluster.local:80"
+ - name: CDE_API_WORKFLOW_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_WORKFLOW_RETRY_WAIT_MS
+ value:
+ _default: "500"
+ - name: CDE_API_WORKFLOW_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_BIMAPI_URL
+ value:
+ _default: "http://backend-svc.bim.svc.cluster.local:80"
+ - name: CDE_API_BIMAPI_V2_URL
+ value:
+ _default: "http://backend-svc.bim.svc.cluster.local:80"
+ - name: CDE_API_BIMAPI_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_BIMAPI_RETRY_WAIT_MS
+ value:
+ _default: "1000"
+ - name: CDE_API_BIMAPI_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_BIMAPI_TIMEOUT_V2_MS
+ value:
+ _default: "300000"
+ - name: CDE_API_WORKSPACE_BASE_URL
+ value:
+ _default: "http://backend-svc.workspaces.svc.cluster.local:80"
+ - name: CDE_API_WORKSPACE_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_WORKSPACE_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_SYSTEMLOG_BASE_URL
+ value:
+ _default: "http://backend-svc.system-log.svc.cluster.local:80"
+ - name: CDE_API_SYSTEMLOG_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_CONTAINER_REGISTRY
+ value:
+ _default: "cr.yandex/crp3ccidau046kdj8g9q"
+ - name: CDE_API_WORKFLOWS_IMAGES_VERSION
+ value:
+ _default: "master"
+ - name: CDE_API_DJANGO_HOST
+ value:
+ _default: "http://backend-svc.django.svc.cluster.local:80"
+ - name: CDE_API_ENVIRONMENT
+ value:
+ _default: "production"
+ - name: CDE_API_CONVERTED_PDF_TO_S3
+ value:
+ _default: "true"
+ - name: CDE_API_CONVERT_DXF_TO_GEOJSON
+ value:
+ _default: "true"
+ - name: CDE_API_CONVERT_DWG_TO_GEOJSON
+ value:
+ _default: "true"
+ - name: CDE_API_USE_BIMV1_FOR_BIMV2
+ value:
+ _default: "true"
+ - name: CDE_API_EAV_HOST
+ value:
+ _default: "http://backend-svc.eav.svc.cluster.local:80"
+ - name: CDE_API_EAV_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_DOCUMENTATION_V2_URL
+ value:
+ _default: "http://backend-api-svc.documentations.svc.cluster.local:80"
+ - name: CDE_API_INTERNAL_URL
+ value:
+ _default: "http://cde-api.documentations:8000"
+ - name: CDE_API_COPY_MAX_SYNC_WAIT_MS
+ value:
+ _default: "300000"
+ - name: CDE_API_LAST_MASTER_BIM
+ value:
+ _default: "36311"
+ - name: CDE_API_LAST_SLAVE_1_BIM
+ value:
+ _default: "94015"
+ - name: CDE_API_LAST_SLAVE_2_BIM
+ value:
+ _default: "135771"
+ - name: CDE_API_USE_BIM_INSERTER
+ value:
+ _default: "true"
+ - name: CDE_API_USE_LEGACY_BIM_FLOW
+ value:
+ _default: "0"
+ - name: CDE_API_DATABASE_MAX_CONN_LIFETIME
+ value:
+ _default: "30m"
+ - name: CDE_API_DATABASE_MAX_CONN_IDLE_TIME
+ value:
+ _default: "10m"
+ - name: CDE_API_DATABASE_HEALTH_CHECK_PERIOD
+ value:
+ _default: "30s"
+ - name: CDE_API_DATABASE_POOL_SIZE
+ value:
+ _default: "10"
+ - name: CDE_API_DIAGNOSTICS_SLOW_OPERATION_THRESHOLD
+ value:
+ _default: "30s"
+ - name: CDE_API_DATABASE__SSLMODE
+ value:
+ _default: "disable"
+ - name: CDE_API_DATABASE__INSECURE_SKIP_TLS
+ value:
+ _default: "false"
+ - name: CDE_API_DATABASE_OBSERVABILITY_ENABLE
+ value:
+ _default: "true"
+ - name: CDE_API_REDIS__DB
+ value:
+ _default: "5"
+ - name: CDE_API_REDIS__SSL
+ value:
+ _default: "false"
+ - name: CDE_API_REDIS__POOL_SIZE
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__MIN_IDLE_CONNS
+ value:
+ _default: "2"
+ - name: CDE_API_REDIS__DIAL_TIMEOUT_MS
+ value:
+ _default: "5000"
+ - name: CDE_API_REDIS__READ_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__WRITE_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__DEFAULT_TTL_MINUTES
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__PERMISSION_CACHE_ENABLED
+ value:
+ _default: "false"
+ - name: CDE_API_S3_BUCKET_NAME
+ value:
+ _default: "documentations-prod"
+ - name: CDE_API_S3_USE_SSL
+ value:
+ _default: "true"
+ - name: CDE_API_S3_BUCKET_LOOKUP
+ value:
+ _default: "auto"
+ - name: CDE_API_S3_INSECURE_SKIP_TLS
+ value:
+ _default: "true"
+ - name: CDE_API_S3_CHECK_BUCKET
+ value:
+ _default: "false"
+ - name: CDE_API_S3_CONNECT_TIMEOUT
+ value:
+ _default: "10s"
+ - name: CDE_API_S3_TLS_HANDSHAKE_TIMEOUT
+ value:
+ _default: "10s"
+ - name: CDE_API_S32D_MAX_ARCHIVE_SIZE_BYTES
+ value:
+ _default: "1099511627776"
+ - name: CDE_API_S32D_MAX_FILES_COUNT
+ value:
+ _default: "500"
+ - name: CDE_API_ZEEBE_USE_PLAINTEXT
+ value:
+ _default: "true"
+ - name: CDE_API_USERS_BASE_URL
+ value:
+ _default: "http://backend-svc.django.svc.cluster.local:80"
+ - name: CDE_API_DISK_BUCKET_NAMESPACE
+ value:
+ _default: "documentations-prod"
+ - name: CDE_API_USERS_ORIGINATOR
+ value:
+ _default: "docs_prod"
+ - name: CDE_API_USERS_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_MAILER_BASE_URL
+ value:
+ _default: "http://mailer-service.mailer:8000"
+ - name: CDE_API_MAILER_FROM_EMAIL
+ value:
+ _default: "noreply@sarex.io"
+ - name: CDE_API_MAILER_RETRY_COUNT
+ value:
+ _default: "2"
+ - name: CDE_API_MAILER_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_FLOWS_URL
+ value:
+ _default: "http://backend-svc.flows.svc.cluster.local:80"
+ - name: CDE_API_TRANSMITTALS_URL
+ value:
+ _default: "http://transmittal-service.transmittal.svc.cluster.local:80"
+ - name: CDE_API_WORKFLOWS_CONFIG_FILEPATH
+ value:
+ _default: "/etc/app/tasks_execution_config.json"
+ - name: CDE_API_RABBITMQ__MARKS_ROUTING_KEY
+ value:
+ _default: "pdf_markings_input"
+ - name: CDE_API_RABBITMQ__HASHER_ROUTING_KEY
+ value:
+ _default: "hash.compute.normal"
+ - name: CDE_API_RABBITMQ__HASHER_EXCHANGE
+ value:
+ _default: "hash.compute"
+ - name: CDE_API_REDIS__HOST
+ value:
+ _default: "redis"
+ - name: CDE_API_REDIS__PORT
+ value:
+ _default: "6379"
+ - name: CDE_API_RABBITMQ__HOST
+ value:
+ _default: "rabbitmq.rabbitmq.svc.cluster.local"
+ - name: CDE_API_RABBITMQ__PORT
+ value:
+ _default: "5672"
+ podAnnotations:
+ _default:
+ traffic.sidecar.istio.io/excludeOutboundPorts: "4317,4318,9411,8200"
+ vault.hashicorp.com/agent-init-first: "true"
+ vault.hashicorp.com/agent-inject: "true"
+ vault.hashicorp.com/agent-pre-populate-only: "true"
+ vault.hashicorp.com/auth-path: auth/kubernetes
+ vault.hashicorp.com/role: documentations
+ vault.hashicorp.com/agent-inject-secret-cde-api-postgres: secrets/data/apps/documentations/postgres
+ vault.hashicorp.com/agent-inject-template-cde-api-postgres: |-
+ {{- with secret "secrets/data/apps/documentations/postgres" -}}
+ CDE_API_DATABASE__HOST={{ index .Data.data "host" }}
+ CDE_API_DATABASE__PORT={{ index .Data.data "port" }}
+ CDE_API_DATABASE__NAME={{ index .Data.data "database" }}
+ CDE_API_DATABASE__USER={{ index .Data.data "username" }}
+ CDE_API_DATABASE__PASSWORD={{ index .Data.data "password" }}
+ {{- end -}}
+ vault.hashicorp.com/agent-inject-secret-cde-api-s3: secrets/data/minio/apps/documentations
+ vault.hashicorp.com/agent-inject-template-cde-api-s3: |-
+ {{- with secret "secrets/data/minio/apps/documentations" -}}
+ CDE_API_S3_ENDPOINT={{ index .Data.data.client "endpoint" }}
+ CDE_API_S3_ACCESS_KEY={{ index .Data.data "access_key" }}
+ CDE_API_S3_SECRET_KEY={{ index .Data.data "secret_key" }}
+ {{- end -}}
+ vault.hashicorp.com/agent-inject-secret-cde-api-zeebe: secrets/data/apps/cde-api/zeebe
+ vault.hashicorp.com/agent-inject-template-cde-api-zeebe: |-
+ {{- with secret "secrets/data/apps/cde-api/zeebe" -}}
+ CDE_API_ZEEBE_GATEWAY_ADDRESS={{ index .Data.data "gateway_address" }}
+ CDE_API_ZEEBE_CLIENT_ID={{ index .Data.data "client_id" }}
+ CDE_API_ZEEBE_CLIENT_SECRET={{ index .Data.data "client_secret" }}
+ CDE_API_ZEEBE_AUTH_SERVER_URL={{ index .Data.data "auth_server_url" }}
+ {{- end -}}
+ vault.hashicorp.com/agent-inject-secret-cde-api-rabbitmq: secrets/data/rabbitmq/apps/cde
+ vault.hashicorp.com/agent-inject-template-cde-api-rabbitmq: |-
+ {{- with secret "secrets/data/rabbitmq/apps/cde" -}}
+ CDE_API_RABBITMQ__USER={{ index .Data.data "username" }}
+ CDE_API_RABBITMQ__PASSWORD={{ index .Data.data "password" }}
+ CDE_API_RABBITMQ__VHOST={{ index .Data.data "vhost" }}
+ {{- end -}}
+ vault.hashicorp.com/agent-inject-secret-cde-api-django-auth: secrets/data/vault/common/django_auth
+ vault.hashicorp.com/agent-inject-template-cde-api-django-auth: |-
+ {{- with secret "secrets/data/vault/common/django_auth" -}}
+ CDE_API_USERS_AUTH_TOKEN={{ index .Data.data "key" }}
+ {{- end -}}
+ vault.hashicorp.com/agent-inject-secret-cde-api-rsa-public: secrets/data/vault/common/rsa_keys
+ vault.hashicorp.com/agent-inject-template-cde-api-rsa-public: |-
+ {{- with secret "secrets/data/vault/common/rsa_keys" -}}
+ {{ index .Data.data "public_key" }}
+ {{- end -}}
+ volumes:
+ _default:
+ - name: tasks-execution-config
+ mountPath:
+ _default: /etc/app/tasks_execution_config.json
+ subPath:
+ _default: tasks_execution_config.json
+ readOnly:
+ _default: true
+ configMap:
+ name:
+ _default: tasks-execution-config-documentation-v2
+ items:
+ - key: tasks-execution-config-documentation-v2.json
+ path:
+ _default: tasks_execution_config.json
+ defaultMode:
+ _default: "0644"
diff --git a/apps/documentations/base/kustomization.yaml b/apps/documentations/base/kustomization.yaml
index a9e034f..1c7ea30 100644
--- a/apps/documentations/base/kustomization.yaml
+++ b/apps/documentations/base/kustomization.yaml
@@ -12,3 +12,11 @@ resources:
- hasher.yaml
- redis-deployment.yaml
- redis-service.yaml
+ - tasks-execution-config.yaml
+ - cde-api.yaml
+ - cde-api-worker-s32d-create-upload.yaml
+ - cde-api-worker-s32d-process-workflows.yaml
+ - cde-api-worker-s32d-publish-documents.yaml
+ - cde-api-worker-s32d-handle-error.yaml
+ - cde-api-worker-copy.yaml
+ - cde-api-worker-move.yaml
diff --git a/apps/documentations/base/tasks-execution-config.yaml b/apps/documentations/base/tasks-execution-config.yaml
new file mode 100644
index 0000000..f4fa140
--- /dev/null
+++ b/apps/documentations/base/tasks-execution-config.yaml
@@ -0,0 +1,180 @@
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: tasks-execution-config-documentation-v2
+ namespace: documentations
+data:
+ tasks-execution-config-documentation-v2.json: |
+ {
+ "bim_api_metadata_inserter": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "bim_api_metadata_inserter_v2": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "bim_api_metadata_inserter_v4": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "bim_differ": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "bim_updater": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "convert_to_potree": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "docx_to_pdf": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "dwg_to_geojson": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_limits": "4",
+ "cpu_requests": "100m",
+ "memory_limits": "40Gi",
+ "memory_requests": "64Mi"
+ }
+ },
+ "e57_to_las": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "ifc_converter_job": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "las_merge": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "mesh_optimizer": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "mesh_optimizer_v2": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "parsing_template": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "processing_converter_to_tiles": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "processing_create_colored_surface_from_geotiff": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "rendering_template": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "split_pdf_document": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "split_pdf_document_legacy": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "update_orthomosaic_data": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "web_hook_caller": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "xml_to_glb": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "document_converter": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "sparkjs_converter_wrapper": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ }
+ }
diff --git a/apps/documentations/brusnika-prod/cde-api-worker-copy.yaml b/apps/documentations/brusnika-prod/cde-api-worker-copy.yaml
new file mode 100644
index 0000000..0c877fc
--- /dev/null
+++ b/apps/documentations/brusnika-prod/cde-api-worker-copy.yaml
@@ -0,0 +1,388 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2
+kind: HelmRelease
+metadata:
+ name: cde-api-worker-copy
+ namespace: documentations
+spec:
+ interval: 10m
+ chart:
+ spec:
+ chart: universal-chart
+ version: "0.1.7"
+ sourceRef:
+ kind: HelmRepository
+ name: yc-oci-charts
+ namespace: flux-system
+ interval: 10m
+ install:
+ remediation:
+ retries: 3
+ upgrade:
+ remediation:
+ retries: 3
+ values:
+ global:
+ env: _default
+ services:
+ worker-copy:
+ enabled: true
+ deployment:
+ enabled: true
+ name:
+ _default: worker-copy
+ replicaCount:
+ _default: 1
+ revisionHistoryLimit:
+ _default: 5
+ resources:
+ requests:
+ cpu:
+ _default: 100m
+ memory:
+ _default: 64Mi
+ image:
+ name:
+ _default: cr.yandex/crp3ccidau046kdj8g9q/cde-api-worker-copy:prod_c9bc246
+ pullPolicy:
+ _default: IfNotPresent
+ service:
+ enabled: false
+ imagePullSecrets:
+ enabled:
+ _default: true
+ name:
+ _default: regcred
+ envs:
+ - name: CDE_API_EAV_HOST
+ value:
+ _default: "http://eav-service.eav.svc.cluster.local:8000"
+ - name: CDE_API_APP_NAME
+ value:
+ _default: "worker-copy"
+ - name: CDE_API_SENTRY_DSN
+ value:
+ _default: ""
+ - name: CDE_API_SENTRY_ENVIRONMENT
+ value:
+ _default: ""
+ - name: CDE_API_LOG_LEVEL
+ value:
+ _default: "info"
+ - name: CDE_API_OBSERVABILITY_ENABLE
+ value:
+ _default: "true"
+ - name: CDE_API_OBSERVABILITY_HOST
+ value:
+ _default: "signoz-otel-collector-external.signoz.svc.cluster.local"
+ - name: CDE_API_OBSERVABILITY_PORT
+ value:
+ _default: "4317"
+ - name: CDE_API_S3_MAX_SINGLE_UPLOAD_SIZE
+ value:
+ _default: "5368709120"
+ - name: CDE_API_S3_MAX_PART_SIZE
+ value:
+ _default: "524288000"
+ - name: CDE_API_S3_UPLOAD_STALL_TIMEOUT
+ value:
+ _default: "10m"
+ - name: CDE_API_OBSERVABILITY_SERVICE_NAME
+ value:
+ _default: "worker-copy"
+ - name: CDE_API_SYSTEMLOG_BASE_URL
+ value:
+ _default: "http://api-service.system-log.svc.cluster.local:80"
+ - name: CDE_API_SYSTEMLOG_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_DATABASE__SSLMODE
+ value:
+ _default: "disable"
+ - name: CDE_API_DATABASE__INSECURE_SKIP_TLS
+ value:
+ _default: "false"
+ - name: CDE_API_DATABASE_MAX_CONN_LIFETIME
+ value:
+ _default: "30m"
+ - name: CDE_API_DATABASE_MAX_CONN_IDLE_TIME
+ value:
+ _default: "10m"
+ - name: CDE_API_DATABASE_HEALTH_CHECK_PERIOD
+ value:
+ _default: "30s"
+ - name: CDE_API_DATABASE_POOL_SIZE
+ value:
+ _default: "3"
+ - name: CDE_API_REDIS__SSL
+ value:
+ _default: "false"
+ - name: CDE_API_REDIS__POOL_SIZE
+ value:
+ _default: "5"
+ - name: CDE_API_REDIS__MIN_IDLE_CONNS
+ value:
+ _default: "1"
+ - name: CDE_API_REDIS__DIAL_TIMEOUT_MS
+ value:
+ _default: "5000"
+ - name: CDE_API_REDIS__READ_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__WRITE_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__DEFAULT_TTL_MINUTES
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__PERMISSION_CACHE_ENABLED
+ value:
+ _default: "false"
+ - name: CDE_API_S3_USE_SSL
+ value:
+ _default: "true"
+ - name: CDE_API_S3_BUCKET_LOOKUP
+ value:
+ _default: "auto"
+ - name: CDE_API_S3_INSECURE_SKIP_TLS
+ value:
+ _default: "true"
+ - name: CDE_API_S3_CHECK_BUCKET
+ value:
+ _default: "false"
+ - name: CDE_API_S3_BUCKET_NAME
+ value:
+ _default: "documentations-prod"
+ - name: CDE_API_ZEEBE_USE_PLAINTEXT
+ value:
+ _default: "true"
+ - name: CDE_API_MAILER_BASE_URL
+ value:
+ _default: "http://mailer-service.mailer:8000"
+ - name: CDE_API_MAILER_FROM_EMAIL
+ value:
+ _default: "noreply@sarex.io"
+ - name: CDE_API_WORKFLOW_BASE_URL
+ value:
+ _default: "http://workflows-api-service.workflow.svc.cluster.local:8000"
+ - name: CDE_API_WORKFLOW_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_WORKFLOW_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_BIMAPI_URL
+ value:
+ _default: "http://bim-api-service.bim.svc.cluster.local:8080"
+ - name: CDE_API_BIMAPI_V2_URL
+ value:
+ _default: "http://backend-service.bim.svc.cluster.local:8000"
+ - name: CDE_API_BIMAPI_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_BIMAPI_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_BIMAPI_TIMEOUT_V2_MS
+ value:
+ _default: "300000"
+ - name: CDE_API_CONTAINER_REGISTRY
+ value:
+ _default: "cr.yandex/crp3ccidau046kdj8g9q"
+ - name: CDE_API_WORKFLOWS_IMAGES_VERSION
+ value:
+ _default: "master"
+ - name: CDE_API_DJANGO_HOST
+ value:
+ _default: "http://backend.django.svc.cluster.local:8000"
+ - name: CDE_API_ENVIRONMENT
+ value:
+ _default: "production"
+ - name: CDE_API_CONVERTED_PDF_TO_S3
+ value:
+ _default: "true"
+ - name: CDE_API_CONVERT_DXF_TO_GEOJSON
+ value:
+ _default: "true"
+ - name: CDE_API_CONVERT_DWG_TO_GEOJSON
+ value:
+ _default: "true"
+ - name: CDE_API_USE_BIMV1_FOR_BIMV2
+ value:
+ _default: "true"
+ - name: CDE_API_LAST_MASTER_BIM
+ value:
+ _default: "36311"
+ - name: CDE_API_LAST_SLAVE_1_BIM
+ value:
+ _default: "94015"
+ - name: CDE_API_LAST_SLAVE_2_BIM
+ value:
+ _default: "135771"
+ - name: CDE_API_USE_BIM_INSERTER
+ value:
+ _default: "true"
+ - name: CDE_API_USE_LEGACY_BIM_FLOW
+ value:
+ _default: "0"
+ - name: CDE_API_DOCUMENTATION_V2_URL
+ value:
+ _default: "http://documentations-api.documentations.svc.cluster.local:8080"
+ - name: CDE_API_INTERNAL_URL
+ value:
+ _default: "http://cde-api.documentations:8000"
+ - name: CDE_API_FLOWS_URL
+ value:
+ _default: "http://backend-service.flows.svc.cluster.local:8000"
+ - name: CDE_API_TRANSMITTALS_URL
+ value:
+ _default: "http://transmittal-service.transmittal.svc.cluster.local:80"
+ - name: CDE_API_WORKFLOWS_CONFIG_FILEPATH
+ value:
+ _default: "/etc/app/tasks_execution_config.json"
+ - name: CDE_API_WORKSPACE_BASE_URL
+ value:
+ _default: "http://workspaces-service.workspaces.svc.cluster.local:8000"
+ - name: CDE_API_WORKSPACE_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_WORKSPACE_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_RABBITMQ__MARKS_ROUTING_KEY
+ value:
+ _default: "pdf_markings_input"
+ - name: CDE_API_RABBITMQ__HASHER_ROUTING_KEY
+ value:
+ _default: "hash.compute.normal"
+ - name: CDE_API_RABBITMQ__HASHER_EXCHANGE
+ value:
+ _default: "hash.compute"
+ - name: CDE_API_ISSUES_SYNC_ENABLED
+ value:
+ _default: "false"
+ - name: CDE_API_ISSUES_BASE_URL
+ value:
+ _default: "http://issues-service.platform:8000"
+ - name: CDE_API_ISSUES_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_ISSUES_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_COPY_WORKER_JOBS
+ value:
+ _default: ""
+ - name: CDE_API_COPY_JOB_TIMEOUT_MINUTES
+ value:
+ _default: "30"
+ - name: CDE_API_COPY_STEP_PARALLELISM
+ value:
+ _default: "1"
+ - name: CDE_API_COPY_S3_PARALLELISM
+ value:
+ _default: "1"
+ - name: CDE_API_REDIS__HOST
+ value:
+ _default: "redis"
+ - name: CDE_API_REDIS__PORT
+ value:
+ _default: "6379"
+ - name: CDE_API_DATABASE__HOST
+ value:
+ _default: "postgres-service"
+ - name: CDE_API_DATABASE__PORT
+ value:
+ _default: "5432"
+ - name: CDE_API_DATABASE__NAME
+ value:
+ _default: "documentations"
+ secretEnvs:
+ - name: CDE_API_DATABASE__USER
+ secretName:
+ _default: "postgres-secret"
+ secretKey:
+ _default: "username"
+ - name: CDE_API_DATABASE__PASSWORD
+ secretName:
+ _default: "postgres-secret"
+ secretKey:
+ _default: "password"
+ - name: CDE_API_S3_ENDPOINT
+ secretName:
+ _default: "hasher-s3-secret"
+ secretKey:
+ _default: "endpoint"
+ - name: CDE_API_S3_ACCESS_KEY
+ secretName:
+ _default: "hasher-s3-secret"
+ secretKey:
+ _default: "access_key"
+ - name: CDE_API_S3_SECRET_KEY
+ secretName:
+ _default: "hasher-s3-secret"
+ secretKey:
+ _default: "secret_key"
+ - name: CDE_API_ZEEBE_GATEWAY_ADDRESS
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "gateway_address"
+ - name: CDE_API_ZEEBE_CLIENT_ID
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_id"
+ - name: CDE_API_ZEEBE_CLIENT_SECRET
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_secret"
+ - name: CDE_API_ZEEBE_AUTH_SERVER_URL
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "auth_server_url"
+ - name: CDE_API_RABBITMQ__HOST
+ secretName:
+ _default: "rabbitmq"
+ secretKey:
+ _default: "host"
+ - name: CDE_API_RABBITMQ__PORT
+ secretName:
+ _default: "rabbitmq"
+ secretKey:
+ _default: "port"
+ - name: CDE_API_RABBITMQ__USER
+ secretName:
+ _default: "rabbitmq"
+ secretKey:
+ _default: "username"
+ - name: CDE_API_RABBITMQ__PASSWORD
+ secretName:
+ _default: "rabbitmq"
+ secretKey:
+ _default: "password"
+ - name: CDE_API_RABBITMQ__VHOST
+ secretName:
+ _default: "rabbitmq"
+ secretKey:
+ _default: "vhost"
+ volumes:
+ _default:
+ - name: tasks-execution-config
+ mountPath:
+ _default: /etc/app/tasks_execution_config.json
+ subPath:
+ _default: tasks_execution_config.json
+ readOnly:
+ _default: true
+ configMap:
+ name:
+ _default: tasks-execution-config-documentation-v2
+ items:
+ - key: tasks-execution-config-documentation-v2.json
+ path:
+ _default: tasks_execution_config.json
+ defaultMode:
+ _default: "0644"
diff --git a/apps/documentations/brusnika-prod/cde-api-worker-move.yaml b/apps/documentations/brusnika-prod/cde-api-worker-move.yaml
new file mode 100644
index 0000000..f8b8916
--- /dev/null
+++ b/apps/documentations/brusnika-prod/cde-api-worker-move.yaml
@@ -0,0 +1,370 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2
+kind: HelmRelease
+metadata:
+ name: cde-api-worker-move
+ namespace: documentations
+spec:
+ interval: 10m
+ chart:
+ spec:
+ chart: universal-chart
+ version: "0.1.7"
+ sourceRef:
+ kind: HelmRepository
+ name: yc-oci-charts
+ namespace: flux-system
+ interval: 10m
+ install:
+ remediation:
+ retries: 3
+ upgrade:
+ remediation:
+ retries: 3
+ values:
+ global:
+ env: _default
+ services:
+ worker-move:
+ enabled: true
+ deployment:
+ enabled: true
+ name:
+ _default: worker-move
+ replicaCount:
+ _default: 1
+ revisionHistoryLimit:
+ _default: 5
+ resources:
+ requests:
+ cpu:
+ _default: 100m
+ memory:
+ _default: 64Mi
+ image:
+ name:
+ _default: cr.yandex/crp3ccidau046kdj8g9q/cde-api-worker-move:prod_c9bc246
+ pullPolicy:
+ _default: IfNotPresent
+ service:
+ enabled: false
+ imagePullSecrets:
+ enabled:
+ _default: true
+ name:
+ _default: regcred
+ envs:
+ - name: CDE_API_EAV_HOST
+ value:
+ _default: "http://eav-service.eav.svc.cluster.local:8000"
+ - name: CDE_API_APP_NAME
+ value:
+ _default: "worker-move"
+ - name: CDE_API_SENTRY_DSN
+ value:
+ _default: ""
+ - name: CDE_API_SENTRY_ENVIRONMENT
+ value:
+ _default: ""
+ - name: CDE_API_LOG_LEVEL
+ value:
+ _default: "info"
+ - name: CDE_API_OBSERVABILITY_ENABLE
+ value:
+ _default: "true"
+ - name: CDE_API_OBSERVABILITY_HOST
+ value:
+ _default: "signoz-otel-collector-external.signoz.svc.cluster.local"
+ - name: CDE_API_OBSERVABILITY_PORT
+ value:
+ _default: "4317"
+ - name: CDE_API_S3_MAX_SINGLE_UPLOAD_SIZE
+ value:
+ _default: "5368709120"
+ - name: CDE_API_S3_MAX_PART_SIZE
+ value:
+ _default: "524288000"
+ - name: CDE_API_S3_UPLOAD_STALL_TIMEOUT
+ value:
+ _default: "10m"
+ - name: CDE_API_OBSERVABILITY_SERVICE_NAME
+ value:
+ _default: "worker-move"
+ - name: CDE_API_SYSTEMLOG_BASE_URL
+ value:
+ _default: "http://api-service.system-log.svc.cluster.local:80"
+ - name: CDE_API_SYSTEMLOG_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_DATABASE__SSLMODE
+ value:
+ _default: "disable"
+ - name: CDE_API_DATABASE__INSECURE_SKIP_TLS
+ value:
+ _default: "false"
+ - name: CDE_API_DATABASE_MAX_CONN_LIFETIME
+ value:
+ _default: "30m"
+ - name: CDE_API_DATABASE_MAX_CONN_IDLE_TIME
+ value:
+ _default: "10m"
+ - name: CDE_API_DATABASE_HEALTH_CHECK_PERIOD
+ value:
+ _default: "30s"
+ - name: CDE_API_DATABASE_POOL_SIZE
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__SSL
+ value:
+ _default: "false"
+ - name: CDE_API_REDIS__POOL_SIZE
+ value:
+ _default: "5"
+ - name: CDE_API_REDIS__MIN_IDLE_CONNS
+ value:
+ _default: "1"
+ - name: CDE_API_REDIS__DIAL_TIMEOUT_MS
+ value:
+ _default: "5000"
+ - name: CDE_API_REDIS__READ_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__WRITE_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__DEFAULT_TTL_MINUTES
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__PERMISSION_CACHE_ENABLED
+ value:
+ _default: "false"
+ - name: CDE_API_S3_USE_SSL
+ value:
+ _default: "true"
+ - name: CDE_API_S3_BUCKET_LOOKUP
+ value:
+ _default: "auto"
+ - name: CDE_API_S3_INSECURE_SKIP_TLS
+ value:
+ _default: "true"
+ - name: CDE_API_S3_CHECK_BUCKET
+ value:
+ _default: "false"
+ - name: CDE_API_S3_BUCKET_NAME
+ value:
+ _default: "documentations-prod"
+ - name: CDE_API_ZEEBE_USE_PLAINTEXT
+ value:
+ _default: "true"
+ - name: CDE_API_MAILER_BASE_URL
+ value:
+ _default: "http://mailer-service.mailer:8000"
+ - name: CDE_API_MAILER_FROM_EMAIL
+ value:
+ _default: "noreply@sarex.io"
+ - name: CDE_API_WORKFLOW_BASE_URL
+ value:
+ _default: "http://workflows-api-service.workflow.svc.cluster.local:8000"
+ - name: CDE_API_WORKFLOW_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_WORKFLOW_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_BIMAPI_URL
+ value:
+ _default: "http://bim-api-service.bim.svc.cluster.local:8080"
+ - name: CDE_API_BIMAPI_V2_URL
+ value:
+ _default: "http://backend-service.bim.svc.cluster.local:8000"
+ - name: CDE_API_BIMAPI_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_BIMAPI_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_BIMAPI_TIMEOUT_V2_MS
+ value:
+ _default: "300000"
+ - name: CDE_API_CONTAINER_REGISTRY
+ value:
+ _default: "cr.yandex/crp3ccidau046kdj8g9q"
+ - name: CDE_API_WORKFLOWS_IMAGES_VERSION
+ value:
+ _default: "master"
+ - name: CDE_API_DJANGO_HOST
+ value:
+ _default: "http://backend.django.svc.cluster.local:8000"
+ - name: CDE_API_ENVIRONMENT
+ value:
+ _default: "production"
+ - name: CDE_API_CONVERTED_PDF_TO_S3
+ value:
+ _default: "true"
+ - name: CDE_API_CONVERT_DXF_TO_GEOJSON
+ value:
+ _default: "true"
+ - name: CDE_API_CONVERT_DWG_TO_GEOJSON
+ value:
+ _default: "true"
+ - name: CDE_API_USE_BIMV1_FOR_BIMV2
+ value:
+ _default: "true"
+ - name: CDE_API_LAST_MASTER_BIM
+ value:
+ _default: "36311"
+ - name: CDE_API_LAST_SLAVE_1_BIM
+ value:
+ _default: "94015"
+ - name: CDE_API_LAST_SLAVE_2_BIM
+ value:
+ _default: "135771"
+ - name: CDE_API_USE_BIM_INSERTER
+ value:
+ _default: "true"
+ - name: CDE_API_USE_LEGACY_BIM_FLOW
+ value:
+ _default: "0"
+ - name: CDE_API_DOCUMENTATION_V2_URL
+ value:
+ _default: "http://documentations-api.documentations.svc.cluster.local:8080"
+ - name: CDE_API_INTERNAL_URL
+ value:
+ _default: "http://cde-api.documentations:8000"
+ - name: CDE_API_FLOWS_URL
+ value:
+ _default: "http://backend-service.flows.svc.cluster.local:8000"
+ - name: CDE_API_TRANSMITTALS_URL
+ value:
+ _default: "http://transmittal-service.transmittal.svc.cluster.local:80"
+ - name: CDE_API_WORKFLOWS_CONFIG_FILEPATH
+ value:
+ _default: "/etc/app/tasks_execution_config.json"
+ - name: CDE_API_WORKSPACE_BASE_URL
+ value:
+ _default: "http://workspaces-service.workspaces.svc.cluster.local:8000"
+ - name: CDE_API_WORKSPACE_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_WORKSPACE_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_RABBITMQ__MARKS_ROUTING_KEY
+ value:
+ _default: "pdf_markings_input"
+ - name: CDE_API_RABBITMQ__HASHER_ROUTING_KEY
+ value:
+ _default: "hash.compute.normal"
+ - name: CDE_API_RABBITMQ__HASHER_EXCHANGE
+ value:
+ _default: "hash.compute"
+ - name: CDE_API_MOVE_WORKER_JOBS
+ value:
+ _default: ""
+ - name: CDE_API_MOVE_JOB_TIMEOUT_MINUTES
+ value:
+ _default: "30"
+ - name: CDE_API_REDIS__HOST
+ value:
+ _default: "redis"
+ - name: CDE_API_REDIS__PORT
+ value:
+ _default: "6379"
+ - name: CDE_API_DATABASE__HOST
+ value:
+ _default: "postgres-service"
+ - name: CDE_API_DATABASE__PORT
+ value:
+ _default: "5432"
+ - name: CDE_API_DATABASE__NAME
+ value:
+ _default: "documentations"
+ secretEnvs:
+ - name: CDE_API_DATABASE__USER
+ secretName:
+ _default: "postgres-secret"
+ secretKey:
+ _default: "username"
+ - name: CDE_API_DATABASE__PASSWORD
+ secretName:
+ _default: "postgres-secret"
+ secretKey:
+ _default: "password"
+ - name: CDE_API_S3_ENDPOINT
+ secretName:
+ _default: "hasher-s3-secret"
+ secretKey:
+ _default: "endpoint"
+ - name: CDE_API_S3_ACCESS_KEY
+ secretName:
+ _default: "hasher-s3-secret"
+ secretKey:
+ _default: "access_key"
+ - name: CDE_API_S3_SECRET_KEY
+ secretName:
+ _default: "hasher-s3-secret"
+ secretKey:
+ _default: "secret_key"
+ - name: CDE_API_ZEEBE_GATEWAY_ADDRESS
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "gateway_address"
+ - name: CDE_API_ZEEBE_CLIENT_ID
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_id"
+ - name: CDE_API_ZEEBE_CLIENT_SECRET
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_secret"
+ - name: CDE_API_ZEEBE_AUTH_SERVER_URL
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "auth_server_url"
+ - name: CDE_API_RABBITMQ__HOST
+ secretName:
+ _default: "rabbitmq"
+ secretKey:
+ _default: "host"
+ - name: CDE_API_RABBITMQ__PORT
+ secretName:
+ _default: "rabbitmq"
+ secretKey:
+ _default: "port"
+ - name: CDE_API_RABBITMQ__USER
+ secretName:
+ _default: "rabbitmq"
+ secretKey:
+ _default: "username"
+ - name: CDE_API_RABBITMQ__PASSWORD
+ secretName:
+ _default: "rabbitmq"
+ secretKey:
+ _default: "password"
+ - name: CDE_API_RABBITMQ__VHOST
+ secretName:
+ _default: "rabbitmq"
+ secretKey:
+ _default: "vhost"
+ volumes:
+ _default:
+ - name: tasks-execution-config
+ mountPath:
+ _default: /etc/app/tasks_execution_config.json
+ subPath:
+ _default: tasks_execution_config.json
+ readOnly:
+ _default: true
+ configMap:
+ name:
+ _default: tasks-execution-config-documentation-v2
+ items:
+ - key: tasks-execution-config-documentation-v2.json
+ path:
+ _default: tasks_execution_config.json
+ defaultMode:
+ _default: "0644"
diff --git a/apps/documentations/brusnika-prod/cde-api-worker-s32d-create-upload.yaml b/apps/documentations/brusnika-prod/cde-api-worker-s32d-create-upload.yaml
new file mode 100644
index 0000000..b6b2001
--- /dev/null
+++ b/apps/documentations/brusnika-prod/cde-api-worker-s32d-create-upload.yaml
@@ -0,0 +1,258 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2
+kind: HelmRelease
+metadata:
+ name: cde-api-worker-s32d-create-upload
+ namespace: documentations
+spec:
+ interval: 10m
+ chart:
+ spec:
+ chart: universal-chart
+ version: "0.1.7"
+ sourceRef:
+ kind: HelmRepository
+ name: yc-oci-charts
+ namespace: flux-system
+ interval: 10m
+ install:
+ remediation:
+ retries: 3
+ upgrade:
+ remediation:
+ retries: 3
+ values:
+ global:
+ env: _default
+ services:
+ worker-s32d-create-upload:
+ enabled: true
+ deployment:
+ enabled: true
+ name:
+ _default: worker-s32d-create-upload
+ replicaCount:
+ _default: 1
+ revisionHistoryLimit:
+ _default: 5
+ resources:
+ requests:
+ cpu:
+ _default: 200m
+ memory:
+ _default: 256Mi
+ image:
+ name:
+ _default: cr.yandex/crp3ccidau046kdj8g9q/cde-api-worker-s32d-create-upload:prod_c9bc246
+ pullPolicy:
+ _default: IfNotPresent
+ service:
+ enabled: false
+ imagePullSecrets:
+ enabled:
+ _default: true
+ name:
+ _default: regcred
+ envs:
+ - name: CDE_API_EAV_HOST
+ value:
+ _default: "http://eav-service.eav.svc.cluster.local:8000"
+ - name: CDE_API_APP_NAME
+ value:
+ _default: "worker-s32d-create-upload"
+ - name: CDE_API_SENTRY_DSN
+ value:
+ _default: ""
+ - name: CDE_API_SENTRY_ENVIRONMENT
+ value:
+ _default: ""
+ - name: CDE_API_LOG_LEVEL
+ value:
+ _default: "info"
+ - name: CDE_API_OBSERVABILITY_ENABLE
+ value:
+ _default: "true"
+ - name: CDE_API_OBSERVABILITY_HOST
+ value:
+ _default: "signoz-otel-collector-external.signoz.svc.cluster.local"
+ - name: CDE_API_OBSERVABILITY_PORT
+ value:
+ _default: "4317"
+ - name: CDE_API_S3_MAX_SINGLE_UPLOAD_SIZE
+ value:
+ _default: "5368709120"
+ - name: CDE_API_S3_MAX_PART_SIZE
+ value:
+ _default: "524288000"
+ - name: CDE_API_S3_UPLOAD_STALL_TIMEOUT
+ value:
+ _default: "10m"
+ - name: CDE_API_OBSERVABILITY_SERVICE_NAME
+ value:
+ _default: "worker-s32d-create-upload"
+ - name: CDE_API_DATABASE__SSLMODE
+ value:
+ _default: "disable"
+ - name: CDE_API_DATABASE__INSECURE_SKIP_TLS
+ value:
+ _default: "false"
+ - name: CDE_API_DATABASE_MAX_CONN_LIFETIME
+ value:
+ _default: "30m"
+ - name: CDE_API_DATABASE_MAX_CONN_IDLE_TIME
+ value:
+ _default: "10m"
+ - name: CDE_API_DATABASE_HEALTH_CHECK_PERIOD
+ value:
+ _default: "30s"
+ - name: CDE_API_DATABASE_POOL_SIZE
+ value:
+ _default: "3"
+ - name: CDE_API_REDIS__SSL
+ value:
+ _default: "false"
+ - name: CDE_API_REDIS__POOL_SIZE
+ value:
+ _default: "5"
+ - name: CDE_API_REDIS__MIN_IDLE_CONNS
+ value:
+ _default: "1"
+ - name: CDE_API_REDIS__DIAL_TIMEOUT_MS
+ value:
+ _default: "5000"
+ - name: CDE_API_REDIS__READ_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__WRITE_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__DEFAULT_TTL_MINUTES
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__PERMISSION_CACHE_ENABLED
+ value:
+ _default: "false"
+ - name: CDE_API_S3_USE_SSL
+ value:
+ _default: "true"
+ - name: CDE_API_S3_BUCKET_LOOKUP
+ value:
+ _default: "auto"
+ - name: CDE_API_S3_INSECURE_SKIP_TLS
+ value:
+ _default: "true"
+ - name: CDE_API_S3_CHECK_BUCKET
+ value:
+ _default: "false"
+ - name: CDE_API_S3_BUCKET_NAME
+ value:
+ _default: "documentations-prod"
+ - name: CDE_API_ZEEBE_USE_PLAINTEXT
+ value:
+ _default: "true"
+ - name: CDE_API_S32D_READERAT_BLOCK_SIZE_MB
+ value:
+ _default: "8"
+ - name: CDE_API_S32D_READERAT_CACHE_BLOCKS
+ value:
+ _default: "8"
+ - name: CDE_API_S32D_WORKER_CREATE_UPLOAD_TIMEOUT_MIN
+ value:
+ _default: "240"
+ - name: CDE_API_S32D_WORKER_CREATE_UPLOAD_MAX_JOBS
+ value:
+ _default: "2"
+ - name: CDE_API_MAILER_BASE_URL
+ value:
+ _default: "http://mailer-service.mailer:8000"
+ - name: CDE_API_MAILER_FROM_EMAIL
+ value:
+ _default: "noreply@sarex.io"
+ - name: CDE_API_FLOWS_URL
+ value:
+ _default: "http://backend-service.flows.svc.cluster.local:8000"
+ - name: CDE_API_TRANSMITTALS_URL
+ value:
+ _default: "http://transmittal-service.transmittal.svc.cluster.local:80"
+ - name: CDE_API_WORKFLOWS_CONFIG_FILEPATH
+ value:
+ _default: "/etc/app/tasks_execution_config.json"
+ - name: CDE_API_REDIS__HOST
+ value:
+ _default: "redis"
+ - name: CDE_API_REDIS__PORT
+ value:
+ _default: "6379"
+ - name: CDE_API_DATABASE__HOST
+ value:
+ _default: "postgres-service"
+ - name: CDE_API_DATABASE__PORT
+ value:
+ _default: "5432"
+ - name: CDE_API_DATABASE__NAME
+ value:
+ _default: "documentations"
+ secretEnvs:
+ - name: CDE_API_DATABASE__USER
+ secretName:
+ _default: "postgres-secret"
+ secretKey:
+ _default: "username"
+ - name: CDE_API_DATABASE__PASSWORD
+ secretName:
+ _default: "postgres-secret"
+ secretKey:
+ _default: "password"
+ - name: CDE_API_S3_ENDPOINT
+ secretName:
+ _default: "hasher-s3-secret"
+ secretKey:
+ _default: "endpoint"
+ - name: CDE_API_S3_ACCESS_KEY
+ secretName:
+ _default: "hasher-s3-secret"
+ secretKey:
+ _default: "access_key"
+ - name: CDE_API_S3_SECRET_KEY
+ secretName:
+ _default: "hasher-s3-secret"
+ secretKey:
+ _default: "secret_key"
+ - name: CDE_API_ZEEBE_GATEWAY_ADDRESS
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "gateway_address"
+ - name: CDE_API_ZEEBE_CLIENT_ID
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_id"
+ - name: CDE_API_ZEEBE_CLIENT_SECRET
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_secret"
+ - name: CDE_API_ZEEBE_AUTH_SERVER_URL
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "auth_server_url"
+ volumes:
+ _default:
+ - name: tasks-execution-config
+ mountPath:
+ _default: /etc/app/tasks_execution_config.json
+ subPath:
+ _default: tasks_execution_config.json
+ readOnly:
+ _default: true
+ configMap:
+ name:
+ _default: tasks-execution-config-documentation-v2
+ items:
+ - key: tasks-execution-config-documentation-v2.json
+ path:
+ _default: tasks_execution_config.json
+ defaultMode:
+ _default: "0644"
diff --git a/apps/documentations/brusnika-prod/cde-api-worker-s32d-handle-error.yaml b/apps/documentations/brusnika-prod/cde-api-worker-s32d-handle-error.yaml
new file mode 100644
index 0000000..a2af1bf
--- /dev/null
+++ b/apps/documentations/brusnika-prod/cde-api-worker-s32d-handle-error.yaml
@@ -0,0 +1,252 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2
+kind: HelmRelease
+metadata:
+ name: cde-api-worker-s32d-handle-error
+ namespace: documentations
+spec:
+ interval: 10m
+ chart:
+ spec:
+ chart: universal-chart
+ version: "0.1.7"
+ sourceRef:
+ kind: HelmRepository
+ name: yc-oci-charts
+ namespace: flux-system
+ interval: 10m
+ install:
+ remediation:
+ retries: 3
+ upgrade:
+ remediation:
+ retries: 3
+ values:
+ global:
+ env: _default
+ services:
+ worker-s32d-handle-error:
+ enabled: true
+ deployment:
+ enabled: true
+ name:
+ _default: worker-s32d-handle-error
+ replicaCount:
+ _default: 1
+ revisionHistoryLimit:
+ _default: 5
+ resources:
+ requests:
+ cpu:
+ _default: 50m
+ memory:
+ _default: 64Mi
+ image:
+ name:
+ _default: cr.yandex/crp3ccidau046kdj8g9q/cde-api-worker-s32d-handle-error:prod_c9bc246
+ pullPolicy:
+ _default: IfNotPresent
+ service:
+ enabled: false
+ imagePullSecrets:
+ enabled:
+ _default: true
+ name:
+ _default: regcred
+ envs:
+ - name: CDE_API_EAV_HOST
+ value:
+ _default: "http://eav-service.eav.svc.cluster.local:8000"
+ - name: CDE_API_APP_NAME
+ value:
+ _default: "worker-s32d-handle-error"
+ - name: CDE_API_SENTRY_DSN
+ value:
+ _default: ""
+ - name: CDE_API_SENTRY_ENVIRONMENT
+ value:
+ _default: ""
+ - name: CDE_API_LOG_LEVEL
+ value:
+ _default: "info"
+ - name: CDE_API_OBSERVABILITY_ENABLE
+ value:
+ _default: "true"
+ - name: CDE_API_OBSERVABILITY_HOST
+ value:
+ _default: "signoz-otel-collector-external.signoz.svc.cluster.local"
+ - name: CDE_API_OBSERVABILITY_PORT
+ value:
+ _default: "4317"
+ - name: CDE_API_S3_MAX_SINGLE_UPLOAD_SIZE
+ value:
+ _default: "5368709120"
+ - name: CDE_API_S3_MAX_PART_SIZE
+ value:
+ _default: "524288000"
+ - name: CDE_API_S3_UPLOAD_STALL_TIMEOUT
+ value:
+ _default: "10m"
+ - name: CDE_API_OBSERVABILITY_SERVICE_NAME
+ value:
+ _default: "worker-s32d-handle-error"
+ - name: CDE_API_DATABASE__SSLMODE
+ value:
+ _default: "disable"
+ - name: CDE_API_DATABASE__INSECURE_SKIP_TLS
+ value:
+ _default: "false"
+ - name: CDE_API_DATABASE_MAX_CONN_LIFETIME
+ value:
+ _default: "30m"
+ - name: CDE_API_DATABASE_MAX_CONN_IDLE_TIME
+ value:
+ _default: "10m"
+ - name: CDE_API_DATABASE_HEALTH_CHECK_PERIOD
+ value:
+ _default: "30s"
+ - name: CDE_API_DATABASE_POOL_SIZE
+ value:
+ _default: "2"
+ - name: CDE_API_REDIS__SSL
+ value:
+ _default: "false"
+ - name: CDE_API_REDIS__POOL_SIZE
+ value:
+ _default: "3"
+ - name: CDE_API_REDIS__MIN_IDLE_CONNS
+ value:
+ _default: "1"
+ - name: CDE_API_REDIS__DIAL_TIMEOUT_MS
+ value:
+ _default: "5000"
+ - name: CDE_API_REDIS__READ_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__WRITE_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__DEFAULT_TTL_MINUTES
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__PERMISSION_CACHE_ENABLED
+ value:
+ _default: "false"
+ - name: CDE_API_S3_USE_SSL
+ value:
+ _default: "true"
+ - name: CDE_API_S3_BUCKET_LOOKUP
+ value:
+ _default: "auto"
+ - name: CDE_API_S3_INSECURE_SKIP_TLS
+ value:
+ _default: "true"
+ - name: CDE_API_S3_CHECK_BUCKET
+ value:
+ _default: "false"
+ - name: CDE_API_S3_BUCKET_NAME
+ value:
+ _default: "documentations-prod"
+ - name: CDE_API_ZEEBE_USE_PLAINTEXT
+ value:
+ _default: "true"
+ - name: CDE_API_S32D_WORKER_HANDLE_ERROR_TIMEOUT_MIN
+ value:
+ _default: "10"
+ - name: CDE_API_S32D_WORKER_HANDLE_ERROR_MAX_JOBS
+ value:
+ _default: "4"
+ - name: CDE_API_MAILER_BASE_URL
+ value:
+ _default: "http://mailer-service.mailer:8000"
+ - name: CDE_API_MAILER_FROM_EMAIL
+ value:
+ _default: "noreply@sarex.io"
+ - name: CDE_API_FLOWS_URL
+ value:
+ _default: "http://backend-service.flows.svc.cluster.local:8000"
+ - name: CDE_API_TRANSMITTALS_URL
+ value:
+ _default: "http://transmittal-service.transmittal.svc.cluster.local:80"
+ - name: CDE_API_WORKFLOWS_CONFIG_FILEPATH
+ value:
+ _default: "/etc/app/tasks_execution_config.json"
+ - name: CDE_API_REDIS__HOST
+ value:
+ _default: "redis"
+ - name: CDE_API_REDIS__PORT
+ value:
+ _default: "6379"
+ - name: CDE_API_DATABASE__HOST
+ value:
+ _default: "postgres-service"
+ - name: CDE_API_DATABASE__PORT
+ value:
+ _default: "5432"
+ - name: CDE_API_DATABASE__NAME
+ value:
+ _default: "documentations"
+ secretEnvs:
+ - name: CDE_API_DATABASE__USER
+ secretName:
+ _default: "postgres-secret"
+ secretKey:
+ _default: "username"
+ - name: CDE_API_DATABASE__PASSWORD
+ secretName:
+ _default: "postgres-secret"
+ secretKey:
+ _default: "password"
+ - name: CDE_API_S3_ENDPOINT
+ secretName:
+ _default: "hasher-s3-secret"
+ secretKey:
+ _default: "endpoint"
+ - name: CDE_API_S3_ACCESS_KEY
+ secretName:
+ _default: "hasher-s3-secret"
+ secretKey:
+ _default: "access_key"
+ - name: CDE_API_S3_SECRET_KEY
+ secretName:
+ _default: "hasher-s3-secret"
+ secretKey:
+ _default: "secret_key"
+ - name: CDE_API_ZEEBE_GATEWAY_ADDRESS
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "gateway_address"
+ - name: CDE_API_ZEEBE_CLIENT_ID
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_id"
+ - name: CDE_API_ZEEBE_CLIENT_SECRET
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_secret"
+ - name: CDE_API_ZEEBE_AUTH_SERVER_URL
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "auth_server_url"
+ volumes:
+ _default:
+ - name: tasks-execution-config
+ mountPath:
+ _default: /etc/app/tasks_execution_config.json
+ subPath:
+ _default: tasks_execution_config.json
+ readOnly:
+ _default: true
+ configMap:
+ name:
+ _default: tasks-execution-config-documentation-v2
+ items:
+ - key: tasks-execution-config-documentation-v2.json
+ path:
+ _default: tasks_execution_config.json
+ defaultMode:
+ _default: "0644"
diff --git a/apps/documentations/brusnika-prod/cde-api-worker-s32d-process-workflows.yaml b/apps/documentations/brusnika-prod/cde-api-worker-s32d-process-workflows.yaml
new file mode 100644
index 0000000..6cd81ff
--- /dev/null
+++ b/apps/documentations/brusnika-prod/cde-api-worker-s32d-process-workflows.yaml
@@ -0,0 +1,321 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2
+kind: HelmRelease
+metadata:
+ name: cde-api-worker-s32d-process-workflows
+ namespace: documentations
+spec:
+ interval: 10m
+ chart:
+ spec:
+ chart: universal-chart
+ version: "0.1.7"
+ sourceRef:
+ kind: HelmRepository
+ name: yc-oci-charts
+ namespace: flux-system
+ interval: 10m
+ install:
+ remediation:
+ retries: 3
+ upgrade:
+ remediation:
+ retries: 3
+ values:
+ global:
+ env: _default
+ services:
+ worker-s32d-process-workflows:
+ enabled: true
+ deployment:
+ enabled: true
+ name:
+ _default: worker-s32d-process-workflows
+ replicaCount:
+ _default: 1
+ revisionHistoryLimit:
+ _default: 5
+ resources:
+ requests:
+ cpu:
+ _default: 200m
+ memory:
+ _default: 256Mi
+ image:
+ name:
+ _default: cr.yandex/crp3ccidau046kdj8g9q/cde-api-worker-s32d-process-workflows:prod_c9bc246
+ pullPolicy:
+ _default: IfNotPresent
+ service:
+ enabled: false
+ imagePullSecrets:
+ enabled:
+ _default: true
+ name:
+ _default: regcred
+ envs:
+ - name: CDE_API_EAV_HOST
+ value:
+ _default: "http://eav-service.eav.svc.cluster.local:8000"
+ - name: CDE_API_APP_NAME
+ value:
+ _default: "worker-s32d-process-workflows"
+ - name: CDE_API_SENTRY_DSN
+ value:
+ _default: ""
+ - name: CDE_API_SENTRY_ENVIRONMENT
+ value:
+ _default: ""
+ - name: CDE_API_LOG_LEVEL
+ value:
+ _default: "info"
+ - name: CDE_API_OBSERVABILITY_ENABLE
+ value:
+ _default: "true"
+ - name: CDE_API_OBSERVABILITY_HOST
+ value:
+ _default: "signoz-otel-collector-external.signoz.svc.cluster.local"
+ - name: CDE_API_OBSERVABILITY_PORT
+ value:
+ _default: "4317"
+ - name: CDE_API_S3_MAX_SINGLE_UPLOAD_SIZE
+ value:
+ _default: "5368709120"
+ - name: CDE_API_S3_MAX_PART_SIZE
+ value:
+ _default: "524288000"
+ - name: CDE_API_S3_UPLOAD_STALL_TIMEOUT
+ value:
+ _default: "10m"
+ - name: CDE_API_OBSERVABILITY_SERVICE_NAME
+ value:
+ _default: "worker-s32d-process-workflows"
+ - name: CDE_API_DATABASE__SSLMODE
+ value:
+ _default: "disable"
+ - name: CDE_API_DATABASE__INSECURE_SKIP_TLS
+ value:
+ _default: "false"
+ - name: CDE_API_DATABASE_MAX_CONN_LIFETIME
+ value:
+ _default: "30m"
+ - name: CDE_API_DATABASE_MAX_CONN_IDLE_TIME
+ value:
+ _default: "10m"
+ - name: CDE_API_DATABASE_HEALTH_CHECK_PERIOD
+ value:
+ _default: "30s"
+ - name: CDE_API_DATABASE_POOL_SIZE
+ value:
+ _default: "3"
+ - name: CDE_API_REDIS__SSL
+ value:
+ _default: "false"
+ - name: CDE_API_REDIS__POOL_SIZE
+ value:
+ _default: "5"
+ - name: CDE_API_REDIS__MIN_IDLE_CONNS
+ value:
+ _default: "1"
+ - name: CDE_API_REDIS__DIAL_TIMEOUT_MS
+ value:
+ _default: "5000"
+ - name: CDE_API_REDIS__READ_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__WRITE_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__DEFAULT_TTL_MINUTES
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__PERMISSION_CACHE_ENABLED
+ value:
+ _default: "false"
+ - name: CDE_API_S3_USE_SSL
+ value:
+ _default: "true"
+ - name: CDE_API_S3_BUCKET_LOOKUP
+ value:
+ _default: "auto"
+ - name: CDE_API_S3_INSECURE_SKIP_TLS
+ value:
+ _default: "true"
+ - name: CDE_API_S3_CHECK_BUCKET
+ value:
+ _default: "false"
+ - name: CDE_API_S3_BUCKET_NAME
+ value:
+ _default: "documentations-prod"
+ - name: CDE_API_ZEEBE_USE_PLAINTEXT
+ value:
+ _default: "true"
+ - name: CDE_API_S32D_WORKER_PROCESS_WORKFLOWS_TIMEOUT_MIN
+ value:
+ _default: "480"
+ - name: CDE_API_S32D_WORKER_PROCESS_WORKFLOWS_MAX_JOBS
+ value:
+ _default: "2"
+ - name: CDE_API_MAILER_BASE_URL
+ value:
+ _default: "http://mailer-service.mailer:8000"
+ - name: CDE_API_MAILER_FROM_EMAIL
+ value:
+ _default: "noreply@sarex.io"
+ - name: CDE_API_WORKFLOW_BASE_URL
+ value:
+ _default: "http://workflows-api-service.workflow.svc.cluster.local:8000"
+ - name: CDE_API_WORKFLOW_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_WORKFLOW_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_BIMAPI_URL
+ value:
+ _default: "http://bim-api-service.bim.svc.cluster.local:8080"
+ - name: CDE_API_BIMAPI_V2_URL
+ value:
+ _default: "http://backend-service.bim.svc.cluster.local:8000"
+ - name: CDE_API_BIMAPI_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_BIMAPI_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_BIMAPI_TIMEOUT_V2_MS
+ value:
+ _default: "300000"
+ - name: CDE_API_CONTAINER_REGISTRY
+ value:
+ _default: "cr.yandex/crp3ccidau046kdj8g9q"
+ - name: CDE_API_WORKFLOWS_IMAGES_VERSION
+ value:
+ _default: "master"
+ - name: CDE_API_DJANGO_HOST
+ value:
+ _default: "http://backend.django.svc.cluster.local:8000"
+ - name: CDE_API_ENVIRONMENT
+ value:
+ _default: "production"
+ - name: CDE_API_CONVERTED_PDF_TO_S3
+ value:
+ _default: "true"
+ - name: CDE_API_CONVERT_DXF_TO_GEOJSON
+ value:
+ _default: "true"
+ - name: CDE_API_CONVERT_DWG_TO_GEOJSON
+ value:
+ _default: "true"
+ - name: CDE_API_USE_BIMV1_FOR_BIMV2
+ value:
+ _default: "true"
+ - name: CDE_API_LAST_MASTER_BIM
+ value:
+ _default: "36311"
+ - name: CDE_API_LAST_SLAVE_1_BIM
+ value:
+ _default: "94015"
+ - name: CDE_API_LAST_SLAVE_2_BIM
+ value:
+ _default: "135771"
+ - name: CDE_API_USE_BIM_INSERTER
+ value:
+ _default: "true"
+ - name: CDE_API_USE_LEGACY_BIM_FLOW
+ value:
+ _default: "0"
+ - name: CDE_API_DOCUMENTATION_V2_URL
+ value:
+ _default: "http://documentations-api.documentations.svc.cluster.local:8080"
+ - name: CDE_API_INTERNAL_URL
+ value:
+ _default: "http://cde-api.documentations:8000"
+ - name: CDE_API_FLOWS_URL
+ value:
+ _default: "http://backend-service.flows.svc.cluster.local:8000"
+ - name: CDE_API_TRANSMITTALS_URL
+ value:
+ _default: "http://transmittal-service.transmittal.svc.cluster.local:80"
+ - name: CDE_API_WORKFLOWS_CONFIG_FILEPATH
+ value:
+ _default: "/etc/app/tasks_execution_config.json"
+ - name: CDE_API_REDIS__HOST
+ value:
+ _default: "redis"
+ - name: CDE_API_REDIS__PORT
+ value:
+ _default: "6379"
+ - name: CDE_API_DATABASE__HOST
+ value:
+ _default: "postgres-service"
+ - name: CDE_API_DATABASE__PORT
+ value:
+ _default: "5432"
+ - name: CDE_API_DATABASE__NAME
+ value:
+ _default: "documentations"
+ secretEnvs:
+ - name: CDE_API_DATABASE__USER
+ secretName:
+ _default: "postgres-secret"
+ secretKey:
+ _default: "username"
+ - name: CDE_API_DATABASE__PASSWORD
+ secretName:
+ _default: "postgres-secret"
+ secretKey:
+ _default: "password"
+ - name: CDE_API_S3_ENDPOINT
+ secretName:
+ _default: "hasher-s3-secret"
+ secretKey:
+ _default: "endpoint"
+ - name: CDE_API_S3_ACCESS_KEY
+ secretName:
+ _default: "hasher-s3-secret"
+ secretKey:
+ _default: "access_key"
+ - name: CDE_API_S3_SECRET_KEY
+ secretName:
+ _default: "hasher-s3-secret"
+ secretKey:
+ _default: "secret_key"
+ - name: CDE_API_ZEEBE_GATEWAY_ADDRESS
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "gateway_address"
+ - name: CDE_API_ZEEBE_CLIENT_ID
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_id"
+ - name: CDE_API_ZEEBE_CLIENT_SECRET
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_secret"
+ - name: CDE_API_ZEEBE_AUTH_SERVER_URL
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "auth_server_url"
+ volumes:
+ _default:
+ - name: tasks-execution-config
+ mountPath:
+ _default: /etc/app/tasks_execution_config.json
+ subPath:
+ _default: tasks_execution_config.json
+ readOnly:
+ _default: true
+ configMap:
+ name:
+ _default: tasks-execution-config-documentation-v2
+ items:
+ - key: tasks-execution-config-documentation-v2.json
+ path:
+ _default: tasks_execution_config.json
+ defaultMode:
+ _default: "0644"
diff --git a/apps/documentations/brusnika-prod/cde-api-worker-s32d-publish-documents.yaml b/apps/documentations/brusnika-prod/cde-api-worker-s32d-publish-documents.yaml
new file mode 100644
index 0000000..0c347d6
--- /dev/null
+++ b/apps/documentations/brusnika-prod/cde-api-worker-s32d-publish-documents.yaml
@@ -0,0 +1,267 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2
+kind: HelmRelease
+metadata:
+ name: cde-api-worker-s32d-publish-documents
+ namespace: documentations
+spec:
+ interval: 10m
+ chart:
+ spec:
+ chart: universal-chart
+ version: "0.1.7"
+ sourceRef:
+ kind: HelmRepository
+ name: yc-oci-charts
+ namespace: flux-system
+ interval: 10m
+ install:
+ remediation:
+ retries: 3
+ upgrade:
+ remediation:
+ retries: 3
+ values:
+ global:
+ env: _default
+ services:
+ worker-s32d-publish-documents:
+ enabled: true
+ deployment:
+ enabled: true
+ name:
+ _default: worker-s32d-publish-documents
+ replicaCount:
+ _default: 1
+ revisionHistoryLimit:
+ _default: 5
+ resources:
+ requests:
+ cpu:
+ _default: 100m
+ memory:
+ _default: 64Mi
+ image:
+ name:
+ _default: cr.yandex/crp3ccidau046kdj8g9q/cde-api-worker-s32d-publish-documents:prod_c9bc246
+ pullPolicy:
+ _default: IfNotPresent
+ service:
+ enabled: false
+ imagePullSecrets:
+ enabled:
+ _default: true
+ name:
+ _default: regcred
+ envs:
+ - name: CDE_API_EAV_HOST
+ value:
+ _default: "http://eav-service.eav.svc.cluster.local:8000"
+ - name: CDE_API_APP_NAME
+ value:
+ _default: "worker-s32d-publish-documents"
+ - name: CDE_API_SENTRY_DSN
+ value:
+ _default: ""
+ - name: CDE_API_SENTRY_ENVIRONMENT
+ value:
+ _default: ""
+ - name: CDE_API_LOG_LEVEL
+ value:
+ _default: "info"
+ - name: CDE_API_OBSERVABILITY_ENABLE
+ value:
+ _default: "true"
+ - name: CDE_API_OBSERVABILITY_HOST
+ value:
+ _default: "signoz-otel-collector-external.signoz.svc.cluster.local"
+ - name: CDE_API_OBSERVABILITY_PORT
+ value:
+ _default: "4317"
+ - name: CDE_API_S3_MAX_SINGLE_UPLOAD_SIZE
+ value:
+ _default: "5368709120"
+ - name: CDE_API_S3_MAX_PART_SIZE
+ value:
+ _default: "524288000"
+ - name: CDE_API_S3_UPLOAD_STALL_TIMEOUT
+ value:
+ _default: "10m"
+ - name: CDE_API_OBSERVABILITY_SERVICE_NAME
+ value:
+ _default: "worker-s32d-publish-documents"
+ - name: CDE_API_DATABASE__SSLMODE
+ value:
+ _default: "disable"
+ - name: CDE_API_DATABASE__INSECURE_SKIP_TLS
+ value:
+ _default: "false"
+ - name: CDE_API_DATABASE_MAX_CONN_LIFETIME
+ value:
+ _default: "30m"
+ - name: CDE_API_DATABASE_MAX_CONN_IDLE_TIME
+ value:
+ _default: "10m"
+ - name: CDE_API_DATABASE_HEALTH_CHECK_PERIOD
+ value:
+ _default: "30s"
+ - name: CDE_API_DATABASE_POOL_SIZE
+ value:
+ _default: "3"
+ - name: CDE_API_REDIS__SSL
+ value:
+ _default: "false"
+ - name: CDE_API_REDIS__POOL_SIZE
+ value:
+ _default: "5"
+ - name: CDE_API_REDIS__MIN_IDLE_CONNS
+ value:
+ _default: "1"
+ - name: CDE_API_REDIS__DIAL_TIMEOUT_MS
+ value:
+ _default: "5000"
+ - name: CDE_API_REDIS__READ_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__WRITE_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__DEFAULT_TTL_MINUTES
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__PERMISSION_CACHE_ENABLED
+ value:
+ _default: "false"
+ - name: CDE_API_S3_USE_SSL
+ value:
+ _default: "true"
+ - name: CDE_API_S3_BUCKET_LOOKUP
+ value:
+ _default: "auto"
+ - name: CDE_API_S3_INSECURE_SKIP_TLS
+ value:
+ _default: "true"
+ - name: CDE_API_S3_CHECK_BUCKET
+ value:
+ _default: "false"
+ - name: CDE_API_S3_BUCKET_NAME
+ value:
+ _default: "documentations-prod"
+ - name: CDE_API_ZEEBE_USE_PLAINTEXT
+ value:
+ _default: "true"
+ - name: CDE_API_S32D_WORKER_PUBLISH_DOCUMENTS_TIMEOUT_MIN
+ value:
+ _default: "10"
+ - name: CDE_API_S32D_WORKER_PUBLISH_DOCUMENTS_MAX_JOBS
+ value:
+ _default: "2"
+ - name: CDE_API_MAILER_BASE_URL
+ value:
+ _default: "http://mailer-service.mailer:8000"
+ - name: CDE_API_MAILER_FROM_EMAIL
+ value:
+ _default: "noreply@sarex.io"
+ - name: CDE_API_SYSTEMLOG_BASE_URL
+ value:
+ _default: "http://api-service.system-log.svc.cluster.local:80"
+ - name: CDE_API_SYSTEMLOG_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_FLOWS_URL
+ value:
+ _default: "http://backend-service.flows.svc.cluster.local:8000"
+ - name: CDE_API_TRANSMITTALS_URL
+ value:
+ _default: "http://transmittal-service.transmittal.svc.cluster.local:80"
+ - name: CDE_API_WORKSPACE_BASE_URL
+ value:
+ _default: "http://workspaces-service.workspaces.svc.cluster.local:8000"
+ - name: CDE_API_WORKSPACE_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_WORKSPACE_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_WORKFLOWS_CONFIG_FILEPATH
+ value:
+ _default: "/etc/app/tasks_execution_config.json"
+ - name: CDE_API_REDIS__HOST
+ value:
+ _default: "redis"
+ - name: CDE_API_REDIS__PORT
+ value:
+ _default: "6379"
+ - name: CDE_API_DATABASE__HOST
+ value:
+ _default: "postgres-service"
+ - name: CDE_API_DATABASE__PORT
+ value:
+ _default: "5432"
+ - name: CDE_API_DATABASE__NAME
+ value:
+ _default: "documentations"
+ secretEnvs:
+ - name: CDE_API_DATABASE__USER
+ secretName:
+ _default: "postgres-secret"
+ secretKey:
+ _default: "username"
+ - name: CDE_API_DATABASE__PASSWORD
+ secretName:
+ _default: "postgres-secret"
+ secretKey:
+ _default: "password"
+ - name: CDE_API_S3_ENDPOINT
+ secretName:
+ _default: "hasher-s3-secret"
+ secretKey:
+ _default: "endpoint"
+ - name: CDE_API_S3_ACCESS_KEY
+ secretName:
+ _default: "hasher-s3-secret"
+ secretKey:
+ _default: "access_key"
+ - name: CDE_API_S3_SECRET_KEY
+ secretName:
+ _default: "hasher-s3-secret"
+ secretKey:
+ _default: "secret_key"
+ - name: CDE_API_ZEEBE_GATEWAY_ADDRESS
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "gateway_address"
+ - name: CDE_API_ZEEBE_CLIENT_ID
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_id"
+ - name: CDE_API_ZEEBE_CLIENT_SECRET
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_secret"
+ - name: CDE_API_ZEEBE_AUTH_SERVER_URL
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "auth_server_url"
+ volumes:
+ _default:
+ - name: tasks-execution-config
+ mountPath:
+ _default: /etc/app/tasks_execution_config.json
+ subPath:
+ _default: tasks_execution_config.json
+ readOnly:
+ _default: true
+ configMap:
+ name:
+ _default: tasks-execution-config-documentation-v2
+ items:
+ - key: tasks-execution-config-documentation-v2.json
+ path:
+ _default: tasks_execution_config.json
+ defaultMode:
+ _default: "0644"
diff --git a/apps/documentations/brusnika-prod/cde-api.yaml b/apps/documentations/brusnika-prod/cde-api.yaml
new file mode 100644
index 0000000..1b16961
--- /dev/null
+++ b/apps/documentations/brusnika-prod/cde-api.yaml
@@ -0,0 +1,458 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2
+kind: HelmRelease
+metadata:
+ name: cde-api
+ namespace: documentations
+spec:
+ interval: 10m
+ chart:
+ spec:
+ chart: universal-chart
+ version: "0.1.7"
+ sourceRef:
+ kind: HelmRepository
+ name: yc-oci-charts
+ namespace: flux-system
+ interval: 10m
+ install:
+ remediation:
+ retries: 3
+ upgrade:
+ remediation:
+ retries: 3
+ values:
+ global:
+ env: _default
+ services:
+ cde-api:
+ enabled: true
+ deployment:
+ enabled: true
+ name:
+ _default: cde-api
+ replicaCount:
+ _default: 1
+ revisionHistoryLimit:
+ _default: 5
+ port:
+ _default: 8000
+ resources:
+ requests:
+ cpu:
+ _default: 200m
+ memory:
+ _default: 256Mi
+ image:
+ name:
+ _default: cr.yandex/crp3ccidau046kdj8g9q/cde-api:prod_c9bc246
+ pullPolicy:
+ _default: IfNotPresent
+ service:
+ enabled: true
+ name:
+ _default: cde-api
+ type:
+ _default: ClusterIP
+ port:
+ _default: 8000
+ targetPort:
+ _default: 8000
+ portName:
+ _default: http
+ imagePullSecrets:
+ enabled:
+ _default: true
+ name:
+ _default: regcred
+ envs:
+ - name: CDE_API_RESOURCES_BASE_URL
+ value:
+ _default: "http://iams.iam.svc.cluster.local:8080"
+ - name: CDE_API_RESOURCES_TIMEOUT
+ value:
+ _default: "10s"
+ - name: CDE_API_APP_NAME
+ value:
+ _default: "cde-api"
+ - name: CDE_API_SENTRY_DSN
+ value:
+ _default: ""
+ - name: CDE_API_SENTRY_ENVIRONMENT
+ value:
+ _default: ""
+ - name: CDE_API_LOG_LEVEL
+ value:
+ _default: "debug"
+ - name: CDE_API_HTTP_PORT
+ value:
+ _default: "8000"
+ - name: CDE_API_HTTP_READ_TIMEOUT
+ value:
+ _default: "0s"
+ - name: CDE_API_HTTP_WRITE_TIMEOUT
+ value:
+ _default: "0s"
+ - name: CDE_API_HTTP_IDLE_TIMEOUT
+ value:
+ _default: "120s"
+ - name: CDE_API_HTTP_READ_BUFFER_SIZE
+ value:
+ _default: "96"
+ - name: CDE_API_OBSERVABILITY_ENABLE
+ value:
+ _default: "true"
+ - name: CDE_API_OBSERVABILITY_HOST
+ value:
+ _default: "signoz-otel-collector-external.signoz.svc.cluster.local"
+ - name: CDE_API_OBSERVABILITY_PORT
+ value:
+ _default: "4317"
+ - name: CDE_API_S3_MAX_SINGLE_UPLOAD_SIZE
+ value:
+ _default: "5368709120"
+ - name: CDE_API_S3_MAX_PART_SIZE
+ value:
+ _default: "524288000"
+ - name: CDE_API_S3_UPLOAD_STALL_TIMEOUT
+ value:
+ _default: "10m"
+ - name: CDE_API_PUBLIC_LINK_HOST
+ value:
+ _default: "https://document-link.cde.brusnika.ru"
+ - name: CDE_API_WORKFLOW_BASE_URL
+ value:
+ _default: "http://workflows-api-service.workflow.svc.cluster.local:8000"
+ - name: CDE_API_WORKFLOW_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_WORKFLOW_RETRY_WAIT_MS
+ value:
+ _default: "500"
+ - name: CDE_API_WORKFLOW_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_BIMAPI_URL
+ value:
+ _default: "http://bim-api-service.bim.svc.cluster.local:8080"
+ - name: CDE_API_BIMAPI_V2_URL
+ value:
+ _default: "http://backend-service.bim.svc.cluster.local:8000"
+ - name: CDE_API_BIMAPI_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_BIMAPI_RETRY_WAIT_MS
+ value:
+ _default: "1000"
+ - name: CDE_API_BIMAPI_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_BIMAPI_TIMEOUT_V2_MS
+ value:
+ _default: "300000"
+ - name: CDE_API_WORKSPACE_BASE_URL
+ value:
+ _default: "http://workspaces-service.workspaces.svc.cluster.local:8000"
+ - name: CDE_API_WORKSPACE_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_WORKSPACE_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_SYSTEMLOG_BASE_URL
+ value:
+ _default: "http://api-service.system-log.svc.cluster.local:80"
+ - name: CDE_API_SYSTEMLOG_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_CONTAINER_REGISTRY
+ value:
+ _default: "cr.yandex/crp3ccidau046kdj8g9q"
+ - name: CDE_API_WORKFLOWS_IMAGES_VERSION
+ value:
+ _default: "master"
+ - name: CDE_API_DJANGO_HOST
+ value:
+ _default: "http://backend.django.svc.cluster.local:8000"
+ - name: CDE_API_ENVIRONMENT
+ value:
+ _default: "production"
+ - name: CDE_API_CONVERTED_PDF_TO_S3
+ value:
+ _default: "true"
+ - name: CDE_API_CONVERT_DXF_TO_GEOJSON
+ value:
+ _default: "true"
+ - name: CDE_API_CONVERT_DWG_TO_GEOJSON
+ value:
+ _default: "true"
+ - name: CDE_API_USE_BIMV1_FOR_BIMV2
+ value:
+ _default: "true"
+ - name: CDE_API_EAV_HOST
+ value:
+ _default: "http://eav-service.eav.svc.cluster.local:8000"
+ - name: CDE_API_EAV_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_DOCUMENTATION_V2_URL
+ value:
+ _default: "http://documentations-api.documentations.svc.cluster.local:8080"
+ - name: CDE_API_INTERNAL_URL
+ value:
+ _default: "http://cde-api.documentations:8000"
+ - name: CDE_API_COPY_MAX_SYNC_WAIT_MS
+ value:
+ _default: "300000"
+ - name: CDE_API_LAST_MASTER_BIM
+ value:
+ _default: "36311"
+ - name: CDE_API_LAST_SLAVE_1_BIM
+ value:
+ _default: "94015"
+ - name: CDE_API_LAST_SLAVE_2_BIM
+ value:
+ _default: "135771"
+ - name: CDE_API_USE_BIM_INSERTER
+ value:
+ _default: "true"
+ - name: CDE_API_USE_LEGACY_BIM_FLOW
+ value:
+ _default: "0"
+ - name: CDE_API_DATABASE_MAX_CONN_LIFETIME
+ value:
+ _default: "30m"
+ - name: CDE_API_DATABASE_MAX_CONN_IDLE_TIME
+ value:
+ _default: "10m"
+ - name: CDE_API_DATABASE_HEALTH_CHECK_PERIOD
+ value:
+ _default: "30s"
+ - name: CDE_API_DATABASE_POOL_SIZE
+ value:
+ _default: "10"
+ - name: CDE_API_DIAGNOSTICS_SLOW_OPERATION_THRESHOLD
+ value:
+ _default: "30s"
+ - name: CDE_API_DATABASE__SSLMODE
+ value:
+ _default: "disable"
+ - name: CDE_API_DATABASE__INSECURE_SKIP_TLS
+ value:
+ _default: "false"
+ - name: CDE_API_DATABASE_OBSERVABILITY_ENABLE
+ value:
+ _default: "true"
+ - name: CDE_API_REDIS__DB
+ value:
+ _default: "5"
+ - name: CDE_API_REDIS__SSL
+ value:
+ _default: "false"
+ - name: CDE_API_REDIS__POOL_SIZE
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__MIN_IDLE_CONNS
+ value:
+ _default: "2"
+ - name: CDE_API_REDIS__DIAL_TIMEOUT_MS
+ value:
+ _default: "5000"
+ - name: CDE_API_REDIS__READ_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__WRITE_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__DEFAULT_TTL_MINUTES
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__PERMISSION_CACHE_ENABLED
+ value:
+ _default: "false"
+ - name: CDE_API_S3_BUCKET_NAME
+ value:
+ _default: "documentations-prod"
+ - name: CDE_API_S3_USE_SSL
+ value:
+ _default: "true"
+ - name: CDE_API_S3_BUCKET_LOOKUP
+ value:
+ _default: "auto"
+ - name: CDE_API_S3_INSECURE_SKIP_TLS
+ value:
+ _default: "true"
+ - name: CDE_API_S3_CHECK_BUCKET
+ value:
+ _default: "false"
+ - name: CDE_API_S3_CONNECT_TIMEOUT
+ value:
+ _default: "10s"
+ - name: CDE_API_S3_TLS_HANDSHAKE_TIMEOUT
+ value:
+ _default: "10s"
+ - name: CDE_API_S32D_MAX_ARCHIVE_SIZE_BYTES
+ value:
+ _default: "1099511627776"
+ - name: CDE_API_S32D_MAX_FILES_COUNT
+ value:
+ _default: "500"
+ - name: CDE_API_ZEEBE_USE_PLAINTEXT
+ value:
+ _default: "true"
+ - name: CDE_API_USERS_BASE_URL
+ value:
+ _default: "http://backend.django.svc.cluster.local:8000"
+ - name: CDE_API_DISK_BUCKET_NAMESPACE
+ value:
+ _default: "documentations-prod"
+ - name: CDE_API_USERS_ORIGINATOR
+ value:
+ _default: "docs_prod"
+ - name: CDE_API_USERS_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_MAILER_BASE_URL
+ value:
+ _default: "http://mailer-service.mailer:8000"
+ - name: CDE_API_MAILER_FROM_EMAIL
+ value:
+ _default: "noreply@sarex.io"
+ - name: CDE_API_MAILER_RETRY_COUNT
+ value:
+ _default: "2"
+ - name: CDE_API_MAILER_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_FLOWS_URL
+ value:
+ _default: "http://backend-service.flows.svc.cluster.local:8000"
+ - name: CDE_API_TRANSMITTALS_URL
+ value:
+ _default: "http://transmittal-service.transmittal.svc.cluster.local:80"
+ - name: CDE_API_WORKFLOWS_CONFIG_FILEPATH
+ value:
+ _default: "/etc/app/tasks_execution_config.json"
+ - name: CDE_API_RABBITMQ__MARKS_ROUTING_KEY
+ value:
+ _default: "pdf_markings_input"
+ - name: CDE_API_RABBITMQ__HASHER_ROUTING_KEY
+ value:
+ _default: "hash.compute.normal"
+ - name: CDE_API_RABBITMQ__HASHER_EXCHANGE
+ value:
+ _default: "hash.compute"
+ - name: CDE_API_REDIS__HOST
+ value:
+ _default: "redis"
+ - name: CDE_API_REDIS__PORT
+ value:
+ _default: "6379"
+ - name: CDE_API_DATABASE__HOST
+ value:
+ _default: "postgres-service"
+ - name: CDE_API_DATABASE__PORT
+ value:
+ _default: "5432"
+ - name: CDE_API_DATABASE__NAME
+ value:
+ _default: "documentations"
+ secretEnvs:
+ - name: CDE_API_PUBLIC_KEY
+ secretName:
+ _default: "public-key"
+ secretKey:
+ _default: "key"
+ - name: CDE_API_DATABASE__USER
+ secretName:
+ _default: "postgres-secret"
+ secretKey:
+ _default: "username"
+ - name: CDE_API_DATABASE__PASSWORD
+ secretName:
+ _default: "postgres-secret"
+ secretKey:
+ _default: "password"
+ - name: CDE_API_S3_ENDPOINT
+ secretName:
+ _default: "hasher-s3-secret"
+ secretKey:
+ _default: "endpoint"
+ - name: CDE_API_S3_ACCESS_KEY
+ secretName:
+ _default: "hasher-s3-secret"
+ secretKey:
+ _default: "access_key"
+ - name: CDE_API_S3_SECRET_KEY
+ secretName:
+ _default: "hasher-s3-secret"
+ secretKey:
+ _default: "secret_key"
+ - name: CDE_API_ZEEBE_GATEWAY_ADDRESS
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "gateway_address"
+ - name: CDE_API_ZEEBE_CLIENT_ID
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_id"
+ - name: CDE_API_ZEEBE_CLIENT_SECRET
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_secret"
+ - name: CDE_API_ZEEBE_AUTH_SERVER_URL
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "auth_server_url"
+ - name: CDE_API_USERS_AUTH_TOKEN
+ secretName:
+ _default: "django-auth"
+ secretKey:
+ _default: "key"
+ - name: CDE_API_RABBITMQ__HOST
+ secretName:
+ _default: "rabbitmq"
+ secretKey:
+ _default: "host"
+ - name: CDE_API_RABBITMQ__PORT
+ secretName:
+ _default: "rabbitmq"
+ secretKey:
+ _default: "port"
+ - name: CDE_API_RABBITMQ__USER
+ secretName:
+ _default: "rabbitmq"
+ secretKey:
+ _default: "username"
+ - name: CDE_API_RABBITMQ__PASSWORD
+ secretName:
+ _default: "rabbitmq"
+ secretKey:
+ _default: "password"
+ - name: CDE_API_RABBITMQ__VHOST
+ secretName:
+ _default: "rabbitmq"
+ secretKey:
+ _default: "vhost"
+ volumes:
+ _default:
+ - name: tasks-execution-config
+ mountPath:
+ _default: /etc/app/tasks_execution_config.json
+ subPath:
+ _default: tasks_execution_config.json
+ readOnly:
+ _default: true
+ configMap:
+ name:
+ _default: tasks-execution-config-documentation-v2
+ items:
+ - key: tasks-execution-config-documentation-v2.json
+ path:
+ _default: tasks_execution_config.json
+ defaultMode:
+ _default: "0644"
diff --git a/apps/documentations/brusnika-prod/kustomization.yaml b/apps/documentations/brusnika-prod/kustomization.yaml
index 4fbb3f9..7b4b4ab 100644
--- a/apps/documentations/brusnika-prod/kustomization.yaml
+++ b/apps/documentations/brusnika-prod/kustomization.yaml
@@ -8,3 +8,11 @@ resources:
- api.yaml
- filestream.yaml
- hasher.yaml
+ - tasks-execution-config.yaml
+ - cde-api.yaml
+ - cde-api-worker-s32d-create-upload.yaml
+ - cde-api-worker-s32d-process-workflows.yaml
+ - cde-api-worker-s32d-publish-documents.yaml
+ - cde-api-worker-s32d-handle-error.yaml
+ - cde-api-worker-copy.yaml
+ - cde-api-worker-move.yaml
diff --git a/apps/documentations/brusnika-prod/tasks-execution-config.yaml b/apps/documentations/brusnika-prod/tasks-execution-config.yaml
new file mode 100644
index 0000000..f4fa140
--- /dev/null
+++ b/apps/documentations/brusnika-prod/tasks-execution-config.yaml
@@ -0,0 +1,180 @@
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: tasks-execution-config-documentation-v2
+ namespace: documentations
+data:
+ tasks-execution-config-documentation-v2.json: |
+ {
+ "bim_api_metadata_inserter": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "bim_api_metadata_inserter_v2": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "bim_api_metadata_inserter_v4": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "bim_differ": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "bim_updater": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "convert_to_potree": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "docx_to_pdf": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "dwg_to_geojson": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_limits": "4",
+ "cpu_requests": "100m",
+ "memory_limits": "40Gi",
+ "memory_requests": "64Mi"
+ }
+ },
+ "e57_to_las": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "ifc_converter_job": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "las_merge": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "mesh_optimizer": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "mesh_optimizer_v2": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "parsing_template": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "processing_converter_to_tiles": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "processing_create_colored_surface_from_geotiff": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "rendering_template": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "split_pdf_document": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "split_pdf_document_legacy": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "update_orthomosaic_data": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "web_hook_caller": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "xml_to_glb": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "document_converter": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "sparkjs_converter_wrapper": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ }
+ }
diff --git a/apps/documentations/brusnika-stage/cde-api-worker-copy.yaml b/apps/documentations/brusnika-stage/cde-api-worker-copy.yaml
new file mode 100644
index 0000000..dc72222
--- /dev/null
+++ b/apps/documentations/brusnika-stage/cde-api-worker-copy.yaml
@@ -0,0 +1,388 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2
+kind: HelmRelease
+metadata:
+ name: cde-api-worker-copy
+ namespace: documentations
+spec:
+ interval: 10m
+ chart:
+ spec:
+ chart: universal-chart
+ version: "0.1.7"
+ sourceRef:
+ kind: HelmRepository
+ name: yc-oci-charts
+ namespace: flux-system
+ interval: 10m
+ install:
+ remediation:
+ retries: 3
+ upgrade:
+ remediation:
+ retries: 3
+ values:
+ global:
+ env: _default
+ services:
+ worker-copy:
+ enabled: true
+ deployment:
+ enabled: true
+ name:
+ _default: worker-copy
+ replicaCount:
+ _default: 1
+ revisionHistoryLimit:
+ _default: 5
+ resources:
+ requests:
+ cpu:
+ _default: 100m
+ memory:
+ _default: 64Mi
+ image:
+ name:
+ _default: cr.yandex/crp3ccidau046kdj8g9q/cde-api-worker-copy:stage_c9bc246
+ pullPolicy:
+ _default: IfNotPresent
+ service:
+ enabled: false
+ imagePullSecrets:
+ enabled:
+ _default: true
+ name:
+ _default: regcred
+ envs:
+ - name: CDE_API_EAV_HOST
+ value:
+ _default: "http://eav-service.eav.svc.cluster.local:8000"
+ - name: CDE_API_APP_NAME
+ value:
+ _default: "worker-copy"
+ - name: CDE_API_SENTRY_DSN
+ value:
+ _default: ""
+ - name: CDE_API_SENTRY_ENVIRONMENT
+ value:
+ _default: ""
+ - name: CDE_API_LOG_LEVEL
+ value:
+ _default: "info"
+ - name: CDE_API_OBSERVABILITY_ENABLE
+ value:
+ _default: "true"
+ - name: CDE_API_OBSERVABILITY_HOST
+ value:
+ _default: "signoz-otel-collector.signoz.svc.cluster.local"
+ - name: CDE_API_OBSERVABILITY_PORT
+ value:
+ _default: "4317"
+ - name: CDE_API_S3_MAX_SINGLE_UPLOAD_SIZE
+ value:
+ _default: "5368709120"
+ - name: CDE_API_S3_MAX_PART_SIZE
+ value:
+ _default: "524288000"
+ - name: CDE_API_S3_UPLOAD_STALL_TIMEOUT
+ value:
+ _default: "10m"
+ - name: CDE_API_OBSERVABILITY_SERVICE_NAME
+ value:
+ _default: "worker-copy"
+ - name: CDE_API_SYSTEMLOG_BASE_URL
+ value:
+ _default: "http://api-service.system-log.svc.cluster.local:80"
+ - name: CDE_API_SYSTEMLOG_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_DATABASE__SSLMODE
+ value:
+ _default: "disable"
+ - name: CDE_API_DATABASE__INSECURE_SKIP_TLS
+ value:
+ _default: "false"
+ - name: CDE_API_DATABASE_MAX_CONN_LIFETIME
+ value:
+ _default: "30m"
+ - name: CDE_API_DATABASE_MAX_CONN_IDLE_TIME
+ value:
+ _default: "10m"
+ - name: CDE_API_DATABASE_HEALTH_CHECK_PERIOD
+ value:
+ _default: "30s"
+ - name: CDE_API_DATABASE_POOL_SIZE
+ value:
+ _default: "3"
+ - name: CDE_API_REDIS__SSL
+ value:
+ _default: "false"
+ - name: CDE_API_REDIS__POOL_SIZE
+ value:
+ _default: "5"
+ - name: CDE_API_REDIS__MIN_IDLE_CONNS
+ value:
+ _default: "1"
+ - name: CDE_API_REDIS__DIAL_TIMEOUT_MS
+ value:
+ _default: "5000"
+ - name: CDE_API_REDIS__READ_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__WRITE_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__DEFAULT_TTL_MINUTES
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__PERMISSION_CACHE_ENABLED
+ value:
+ _default: "false"
+ - name: CDE_API_S3_USE_SSL
+ value:
+ _default: "true"
+ - name: CDE_API_S3_BUCKET_LOOKUP
+ value:
+ _default: "auto"
+ - name: CDE_API_S3_INSECURE_SKIP_TLS
+ value:
+ _default: "true"
+ - name: CDE_API_S3_CHECK_BUCKET
+ value:
+ _default: "false"
+ - name: CDE_API_S3_BUCKET_NAME
+ value:
+ _default: "documentations-stage"
+ - name: CDE_API_ZEEBE_USE_PLAINTEXT
+ value:
+ _default: "true"
+ - name: CDE_API_MAILER_BASE_URL
+ value:
+ _default: "http://mailer-service.generic:8000"
+ - name: CDE_API_MAILER_FROM_EMAIL
+ value:
+ _default: "noreply@sarex.io"
+ - name: CDE_API_WORKFLOW_BASE_URL
+ value:
+ _default: "http://workflows-api-service.workflow.svc.cluster.local:8000"
+ - name: CDE_API_WORKFLOW_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_WORKFLOW_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_BIMAPI_URL
+ value:
+ _default: "http://backend-service.bim.svc.cluster.local:8000"
+ - name: CDE_API_BIMAPI_V2_URL
+ value:
+ _default: "http://backend-service.bim.svc.cluster.local:8000"
+ - name: CDE_API_BIMAPI_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_BIMAPI_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_BIMAPI_TIMEOUT_V2_MS
+ value:
+ _default: "300000"
+ - name: CDE_API_CONTAINER_REGISTRY
+ value:
+ _default: "cr.yandex/crp3ccidau046kdj8g9q"
+ - name: CDE_API_WORKFLOWS_IMAGES_VERSION
+ value:
+ _default: "develop"
+ - name: CDE_API_DJANGO_HOST
+ value:
+ _default: "http://backend.django.svc.cluster.local:8000"
+ - name: CDE_API_ENVIRONMENT
+ value:
+ _default: "stage"
+ - name: CDE_API_CONVERTED_PDF_TO_S3
+ value:
+ _default: "true"
+ - name: CDE_API_CONVERT_DXF_TO_GEOJSON
+ value:
+ _default: "true"
+ - name: CDE_API_CONVERT_DWG_TO_GEOJSON
+ value:
+ _default: "true"
+ - name: CDE_API_USE_BIMV1_FOR_BIMV2
+ value:
+ _default: "false"
+ - name: CDE_API_LAST_MASTER_BIM
+ value:
+ _default: "2000"
+ - name: CDE_API_LAST_SLAVE_1_BIM
+ value:
+ _default: "2250"
+ - name: CDE_API_LAST_SLAVE_2_BIM
+ value:
+ _default: "15000"
+ - name: CDE_API_USE_BIM_INSERTER
+ value:
+ _default: "true"
+ - name: CDE_API_USE_LEGACY_BIM_FLOW
+ value:
+ _default: "0"
+ - name: CDE_API_DOCUMENTATION_V2_URL
+ value:
+ _default: "http://documentations-api.documentations.svc.cluster.local:8080"
+ - name: CDE_API_INTERNAL_URL
+ value:
+ _default: "http://cde-api.documentations:8000"
+ - name: CDE_API_FLOWS_URL
+ value:
+ _default: "http://backend-service.flows.svc.cluster.local:8000"
+ - name: CDE_API_TRANSMITTALS_URL
+ value:
+ _default: "http://transmittal-service.transmittal.svc.cluster.local:80"
+ - name: CDE_API_WORKFLOWS_CONFIG_FILEPATH
+ value:
+ _default: "/etc/app/tasks_execution_config.json"
+ - name: CDE_API_WORKSPACE_BASE_URL
+ value:
+ _default: "http://workspaces-service.workspaces.svc.cluster.local:8000"
+ - name: CDE_API_WORKSPACE_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_WORKSPACE_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_RABBITMQ__MARKS_ROUTING_KEY
+ value:
+ _default: "pdf_markings_input"
+ - name: CDE_API_RABBITMQ__HASHER_ROUTING_KEY
+ value:
+ _default: "hash.compute.normal"
+ - name: CDE_API_RABBITMQ__HASHER_EXCHANGE
+ value:
+ _default: "hash.compute"
+ - name: CDE_API_ISSUES_SYNC_ENABLED
+ value:
+ _default: "false"
+ - name: CDE_API_ISSUES_BASE_URL
+ value:
+ _default: "http://issues-service.platform:8000"
+ - name: CDE_API_ISSUES_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_ISSUES_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_COPY_WORKER_JOBS
+ value:
+ _default: ""
+ - name: CDE_API_COPY_JOB_TIMEOUT_MINUTES
+ value:
+ _default: "30"
+ - name: CDE_API_COPY_STEP_PARALLELISM
+ value:
+ _default: "1"
+ - name: CDE_API_COPY_S3_PARALLELISM
+ value:
+ _default: "1"
+ - name: CDE_API_REDIS__HOST
+ value:
+ _default: "redis"
+ - name: CDE_API_REDIS__PORT
+ value:
+ _default: "6379"
+ - name: CDE_API_DATABASE__HOST
+ value:
+ _default: "192.168.2.45"
+ - name: CDE_API_DATABASE__PORT
+ value:
+ _default: "5432"
+ - name: CDE_API_DATABASE__NAME
+ value:
+ _default: "documentations"
+ secretEnvs:
+ - name: CDE_API_DATABASE__USER
+ secretName:
+ _default: "postgres-secret"
+ secretKey:
+ _default: "username"
+ - name: CDE_API_DATABASE__PASSWORD
+ secretName:
+ _default: "postgres-secret"
+ secretKey:
+ _default: "password"
+ - name: CDE_API_S3_ENDPOINT
+ secretName:
+ _default: "yc-s3"
+ secretKey:
+ _default: "endpoint_url"
+ - name: CDE_API_S3_ACCESS_KEY
+ secretName:
+ _default: "yc-s3"
+ secretKey:
+ _default: "key_id"
+ - name: CDE_API_S3_SECRET_KEY
+ secretName:
+ _default: "yc-s3"
+ secretKey:
+ _default: "access_key"
+ - name: CDE_API_ZEEBE_GATEWAY_ADDRESS
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "gateway_address"
+ - name: CDE_API_ZEEBE_CLIENT_ID
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_id"
+ - name: CDE_API_ZEEBE_CLIENT_SECRET
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_secret"
+ - name: CDE_API_ZEEBE_AUTH_SERVER_URL
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "auth_server_url"
+ - name: CDE_API_RABBITMQ__HOST
+ secretName:
+ _default: "rabbitmq"
+ secretKey:
+ _default: "host"
+ - name: CDE_API_RABBITMQ__PORT
+ secretName:
+ _default: "rabbitmq"
+ secretKey:
+ _default: "port"
+ - name: CDE_API_RABBITMQ__USER
+ secretName:
+ _default: "rabbitmq"
+ secretKey:
+ _default: "username"
+ - name: CDE_API_RABBITMQ__PASSWORD
+ secretName:
+ _default: "rabbitmq"
+ secretKey:
+ _default: "password"
+ - name: CDE_API_RABBITMQ__VHOST
+ secretName:
+ _default: "rabbitmq"
+ secretKey:
+ _default: "vhost"
+ volumes:
+ _default:
+ - name: tasks-execution-config
+ mountPath:
+ _default: /etc/app/tasks_execution_config.json
+ subPath:
+ _default: tasks_execution_config.json
+ readOnly:
+ _default: true
+ configMap:
+ name:
+ _default: tasks-execution-config-documentation-v2
+ items:
+ - key: tasks-execution-config-documentation-v2.json
+ path:
+ _default: tasks_execution_config.json
+ defaultMode:
+ _default: "0644"
diff --git a/apps/documentations/brusnika-stage/cde-api-worker-move.yaml b/apps/documentations/brusnika-stage/cde-api-worker-move.yaml
new file mode 100644
index 0000000..f9b52c5
--- /dev/null
+++ b/apps/documentations/brusnika-stage/cde-api-worker-move.yaml
@@ -0,0 +1,370 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2
+kind: HelmRelease
+metadata:
+ name: cde-api-worker-move
+ namespace: documentations
+spec:
+ interval: 10m
+ chart:
+ spec:
+ chart: universal-chart
+ version: "0.1.7"
+ sourceRef:
+ kind: HelmRepository
+ name: yc-oci-charts
+ namespace: flux-system
+ interval: 10m
+ install:
+ remediation:
+ retries: 3
+ upgrade:
+ remediation:
+ retries: 3
+ values:
+ global:
+ env: _default
+ services:
+ worker-move:
+ enabled: true
+ deployment:
+ enabled: true
+ name:
+ _default: worker-move
+ replicaCount:
+ _default: 1
+ revisionHistoryLimit:
+ _default: 5
+ resources:
+ requests:
+ cpu:
+ _default: 100m
+ memory:
+ _default: 64Mi
+ image:
+ name:
+ _default: cr.yandex/crp3ccidau046kdj8g9q/cde-api-worker-move:stage_c9bc246
+ pullPolicy:
+ _default: IfNotPresent
+ service:
+ enabled: false
+ imagePullSecrets:
+ enabled:
+ _default: true
+ name:
+ _default: regcred
+ envs:
+ - name: CDE_API_EAV_HOST
+ value:
+ _default: "http://eav-service.eav.svc.cluster.local:8000"
+ - name: CDE_API_APP_NAME
+ value:
+ _default: "worker-move"
+ - name: CDE_API_SENTRY_DSN
+ value:
+ _default: ""
+ - name: CDE_API_SENTRY_ENVIRONMENT
+ value:
+ _default: ""
+ - name: CDE_API_LOG_LEVEL
+ value:
+ _default: "info"
+ - name: CDE_API_OBSERVABILITY_ENABLE
+ value:
+ _default: "true"
+ - name: CDE_API_OBSERVABILITY_HOST
+ value:
+ _default: "signoz-otel-collector.signoz.svc.cluster.local"
+ - name: CDE_API_OBSERVABILITY_PORT
+ value:
+ _default: "4317"
+ - name: CDE_API_S3_MAX_SINGLE_UPLOAD_SIZE
+ value:
+ _default: "5368709120"
+ - name: CDE_API_S3_MAX_PART_SIZE
+ value:
+ _default: "524288000"
+ - name: CDE_API_S3_UPLOAD_STALL_TIMEOUT
+ value:
+ _default: "10m"
+ - name: CDE_API_OBSERVABILITY_SERVICE_NAME
+ value:
+ _default: "worker-move"
+ - name: CDE_API_SYSTEMLOG_BASE_URL
+ value:
+ _default: "http://api-service.system-log.svc.cluster.local:80"
+ - name: CDE_API_SYSTEMLOG_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_DATABASE__SSLMODE
+ value:
+ _default: "disable"
+ - name: CDE_API_DATABASE__INSECURE_SKIP_TLS
+ value:
+ _default: "false"
+ - name: CDE_API_DATABASE_MAX_CONN_LIFETIME
+ value:
+ _default: "30m"
+ - name: CDE_API_DATABASE_MAX_CONN_IDLE_TIME
+ value:
+ _default: "10m"
+ - name: CDE_API_DATABASE_HEALTH_CHECK_PERIOD
+ value:
+ _default: "30s"
+ - name: CDE_API_DATABASE_POOL_SIZE
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__SSL
+ value:
+ _default: "false"
+ - name: CDE_API_REDIS__POOL_SIZE
+ value:
+ _default: "5"
+ - name: CDE_API_REDIS__MIN_IDLE_CONNS
+ value:
+ _default: "1"
+ - name: CDE_API_REDIS__DIAL_TIMEOUT_MS
+ value:
+ _default: "5000"
+ - name: CDE_API_REDIS__READ_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__WRITE_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__DEFAULT_TTL_MINUTES
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__PERMISSION_CACHE_ENABLED
+ value:
+ _default: "false"
+ - name: CDE_API_S3_USE_SSL
+ value:
+ _default: "true"
+ - name: CDE_API_S3_BUCKET_LOOKUP
+ value:
+ _default: "auto"
+ - name: CDE_API_S3_INSECURE_SKIP_TLS
+ value:
+ _default: "true"
+ - name: CDE_API_S3_CHECK_BUCKET
+ value:
+ _default: "false"
+ - name: CDE_API_S3_BUCKET_NAME
+ value:
+ _default: "documentations-stage"
+ - name: CDE_API_ZEEBE_USE_PLAINTEXT
+ value:
+ _default: "true"
+ - name: CDE_API_MAILER_BASE_URL
+ value:
+ _default: "http://mailer-service.generic:8000"
+ - name: CDE_API_MAILER_FROM_EMAIL
+ value:
+ _default: "noreply@sarex.io"
+ - name: CDE_API_WORKFLOW_BASE_URL
+ value:
+ _default: "http://workflows-api-service.workflow.svc.cluster.local:8000"
+ - name: CDE_API_WORKFLOW_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_WORKFLOW_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_BIMAPI_URL
+ value:
+ _default: "http://backend-service.bim.svc.cluster.local:8000"
+ - name: CDE_API_BIMAPI_V2_URL
+ value:
+ _default: "http://backend-service.bim.svc.cluster.local:8000"
+ - name: CDE_API_BIMAPI_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_BIMAPI_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_BIMAPI_TIMEOUT_V2_MS
+ value:
+ _default: "300000"
+ - name: CDE_API_CONTAINER_REGISTRY
+ value:
+ _default: "cr.yandex/crp3ccidau046kdj8g9q"
+ - name: CDE_API_WORKFLOWS_IMAGES_VERSION
+ value:
+ _default: "develop"
+ - name: CDE_API_DJANGO_HOST
+ value:
+ _default: "http://backend.django.svc.cluster.local:8000"
+ - name: CDE_API_ENVIRONMENT
+ value:
+ _default: "stage"
+ - name: CDE_API_CONVERTED_PDF_TO_S3
+ value:
+ _default: "true"
+ - name: CDE_API_CONVERT_DXF_TO_GEOJSON
+ value:
+ _default: "true"
+ - name: CDE_API_CONVERT_DWG_TO_GEOJSON
+ value:
+ _default: "true"
+ - name: CDE_API_USE_BIMV1_FOR_BIMV2
+ value:
+ _default: "false"
+ - name: CDE_API_LAST_MASTER_BIM
+ value:
+ _default: "2000"
+ - name: CDE_API_LAST_SLAVE_1_BIM
+ value:
+ _default: "2250"
+ - name: CDE_API_LAST_SLAVE_2_BIM
+ value:
+ _default: "15000"
+ - name: CDE_API_USE_BIM_INSERTER
+ value:
+ _default: "true"
+ - name: CDE_API_USE_LEGACY_BIM_FLOW
+ value:
+ _default: "0"
+ - name: CDE_API_DOCUMENTATION_V2_URL
+ value:
+ _default: "http://documentations-api.documentations.svc.cluster.local:8080"
+ - name: CDE_API_INTERNAL_URL
+ value:
+ _default: "http://cde-api.documentations:8000"
+ - name: CDE_API_FLOWS_URL
+ value:
+ _default: "http://backend-service.flows.svc.cluster.local:8000"
+ - name: CDE_API_TRANSMITTALS_URL
+ value:
+ _default: "http://transmittal-service.transmittal.svc.cluster.local:80"
+ - name: CDE_API_WORKFLOWS_CONFIG_FILEPATH
+ value:
+ _default: "/etc/app/tasks_execution_config.json"
+ - name: CDE_API_WORKSPACE_BASE_URL
+ value:
+ _default: "http://workspaces-service.workspaces.svc.cluster.local:8000"
+ - name: CDE_API_WORKSPACE_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_WORKSPACE_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_RABBITMQ__MARKS_ROUTING_KEY
+ value:
+ _default: "pdf_markings_input"
+ - name: CDE_API_RABBITMQ__HASHER_ROUTING_KEY
+ value:
+ _default: "hash.compute.normal"
+ - name: CDE_API_RABBITMQ__HASHER_EXCHANGE
+ value:
+ _default: "hash.compute"
+ - name: CDE_API_MOVE_WORKER_JOBS
+ value:
+ _default: ""
+ - name: CDE_API_MOVE_JOB_TIMEOUT_MINUTES
+ value:
+ _default: "30"
+ - name: CDE_API_REDIS__HOST
+ value:
+ _default: "redis"
+ - name: CDE_API_REDIS__PORT
+ value:
+ _default: "6379"
+ - name: CDE_API_DATABASE__HOST
+ value:
+ _default: "192.168.2.45"
+ - name: CDE_API_DATABASE__PORT
+ value:
+ _default: "5432"
+ - name: CDE_API_DATABASE__NAME
+ value:
+ _default: "documentations"
+ secretEnvs:
+ - name: CDE_API_DATABASE__USER
+ secretName:
+ _default: "postgres-secret"
+ secretKey:
+ _default: "username"
+ - name: CDE_API_DATABASE__PASSWORD
+ secretName:
+ _default: "postgres-secret"
+ secretKey:
+ _default: "password"
+ - name: CDE_API_S3_ENDPOINT
+ secretName:
+ _default: "yc-s3"
+ secretKey:
+ _default: "endpoint_url"
+ - name: CDE_API_S3_ACCESS_KEY
+ secretName:
+ _default: "yc-s3"
+ secretKey:
+ _default: "key_id"
+ - name: CDE_API_S3_SECRET_KEY
+ secretName:
+ _default: "yc-s3"
+ secretKey:
+ _default: "access_key"
+ - name: CDE_API_ZEEBE_GATEWAY_ADDRESS
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "gateway_address"
+ - name: CDE_API_ZEEBE_CLIENT_ID
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_id"
+ - name: CDE_API_ZEEBE_CLIENT_SECRET
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_secret"
+ - name: CDE_API_ZEEBE_AUTH_SERVER_URL
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "auth_server_url"
+ - name: CDE_API_RABBITMQ__HOST
+ secretName:
+ _default: "rabbitmq"
+ secretKey:
+ _default: "host"
+ - name: CDE_API_RABBITMQ__PORT
+ secretName:
+ _default: "rabbitmq"
+ secretKey:
+ _default: "port"
+ - name: CDE_API_RABBITMQ__USER
+ secretName:
+ _default: "rabbitmq"
+ secretKey:
+ _default: "username"
+ - name: CDE_API_RABBITMQ__PASSWORD
+ secretName:
+ _default: "rabbitmq"
+ secretKey:
+ _default: "password"
+ - name: CDE_API_RABBITMQ__VHOST
+ secretName:
+ _default: "rabbitmq"
+ secretKey:
+ _default: "vhost"
+ volumes:
+ _default:
+ - name: tasks-execution-config
+ mountPath:
+ _default: /etc/app/tasks_execution_config.json
+ subPath:
+ _default: tasks_execution_config.json
+ readOnly:
+ _default: true
+ configMap:
+ name:
+ _default: tasks-execution-config-documentation-v2
+ items:
+ - key: tasks-execution-config-documentation-v2.json
+ path:
+ _default: tasks_execution_config.json
+ defaultMode:
+ _default: "0644"
diff --git a/apps/documentations/brusnika-stage/cde-api-worker-s32d-create-upload.yaml b/apps/documentations/brusnika-stage/cde-api-worker-s32d-create-upload.yaml
new file mode 100644
index 0000000..2e5067f
--- /dev/null
+++ b/apps/documentations/brusnika-stage/cde-api-worker-s32d-create-upload.yaml
@@ -0,0 +1,258 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2
+kind: HelmRelease
+metadata:
+ name: cde-api-worker-s32d-create-upload
+ namespace: documentations
+spec:
+ interval: 10m
+ chart:
+ spec:
+ chart: universal-chart
+ version: "0.1.7"
+ sourceRef:
+ kind: HelmRepository
+ name: yc-oci-charts
+ namespace: flux-system
+ interval: 10m
+ install:
+ remediation:
+ retries: 3
+ upgrade:
+ remediation:
+ retries: 3
+ values:
+ global:
+ env: _default
+ services:
+ worker-s32d-create-upload:
+ enabled: true
+ deployment:
+ enabled: true
+ name:
+ _default: worker-s32d-create-upload
+ replicaCount:
+ _default: 1
+ revisionHistoryLimit:
+ _default: 5
+ resources:
+ requests:
+ cpu:
+ _default: 200m
+ memory:
+ _default: 256Mi
+ image:
+ name:
+ _default: cr.yandex/crp3ccidau046kdj8g9q/cde-api-worker-s32d-create-upload:stage_c9bc246
+ pullPolicy:
+ _default: IfNotPresent
+ service:
+ enabled: false
+ imagePullSecrets:
+ enabled:
+ _default: true
+ name:
+ _default: regcred
+ envs:
+ - name: CDE_API_EAV_HOST
+ value:
+ _default: "http://eav-service.eav.svc.cluster.local:8000"
+ - name: CDE_API_APP_NAME
+ value:
+ _default: "worker-s32d-create-upload"
+ - name: CDE_API_SENTRY_DSN
+ value:
+ _default: ""
+ - name: CDE_API_SENTRY_ENVIRONMENT
+ value:
+ _default: ""
+ - name: CDE_API_LOG_LEVEL
+ value:
+ _default: "info"
+ - name: CDE_API_OBSERVABILITY_ENABLE
+ value:
+ _default: "true"
+ - name: CDE_API_OBSERVABILITY_HOST
+ value:
+ _default: "signoz-otel-collector.signoz.svc.cluster.local"
+ - name: CDE_API_OBSERVABILITY_PORT
+ value:
+ _default: "4317"
+ - name: CDE_API_S3_MAX_SINGLE_UPLOAD_SIZE
+ value:
+ _default: "5368709120"
+ - name: CDE_API_S3_MAX_PART_SIZE
+ value:
+ _default: "524288000"
+ - name: CDE_API_S3_UPLOAD_STALL_TIMEOUT
+ value:
+ _default: "10m"
+ - name: CDE_API_OBSERVABILITY_SERVICE_NAME
+ value:
+ _default: "worker-s32d-create-upload"
+ - name: CDE_API_DATABASE__SSLMODE
+ value:
+ _default: "disable"
+ - name: CDE_API_DATABASE__INSECURE_SKIP_TLS
+ value:
+ _default: "false"
+ - name: CDE_API_DATABASE_MAX_CONN_LIFETIME
+ value:
+ _default: "30m"
+ - name: CDE_API_DATABASE_MAX_CONN_IDLE_TIME
+ value:
+ _default: "10m"
+ - name: CDE_API_DATABASE_HEALTH_CHECK_PERIOD
+ value:
+ _default: "30s"
+ - name: CDE_API_DATABASE_POOL_SIZE
+ value:
+ _default: "3"
+ - name: CDE_API_REDIS__SSL
+ value:
+ _default: "false"
+ - name: CDE_API_REDIS__POOL_SIZE
+ value:
+ _default: "5"
+ - name: CDE_API_REDIS__MIN_IDLE_CONNS
+ value:
+ _default: "1"
+ - name: CDE_API_REDIS__DIAL_TIMEOUT_MS
+ value:
+ _default: "5000"
+ - name: CDE_API_REDIS__READ_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__WRITE_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__DEFAULT_TTL_MINUTES
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__PERMISSION_CACHE_ENABLED
+ value:
+ _default: "false"
+ - name: CDE_API_S3_USE_SSL
+ value:
+ _default: "true"
+ - name: CDE_API_S3_BUCKET_LOOKUP
+ value:
+ _default: "auto"
+ - name: CDE_API_S3_INSECURE_SKIP_TLS
+ value:
+ _default: "true"
+ - name: CDE_API_S3_CHECK_BUCKET
+ value:
+ _default: "false"
+ - name: CDE_API_S3_BUCKET_NAME
+ value:
+ _default: "documentations-stage"
+ - name: CDE_API_ZEEBE_USE_PLAINTEXT
+ value:
+ _default: "true"
+ - name: CDE_API_S32D_READERAT_BLOCK_SIZE_MB
+ value:
+ _default: "8"
+ - name: CDE_API_S32D_READERAT_CACHE_BLOCKS
+ value:
+ _default: "8"
+ - name: CDE_API_S32D_WORKER_CREATE_UPLOAD_TIMEOUT_MIN
+ value:
+ _default: "240"
+ - name: CDE_API_S32D_WORKER_CREATE_UPLOAD_MAX_JOBS
+ value:
+ _default: "2"
+ - name: CDE_API_MAILER_BASE_URL
+ value:
+ _default: "http://mailer-service.generic:8000"
+ - name: CDE_API_MAILER_FROM_EMAIL
+ value:
+ _default: "noreply@sarex.io"
+ - name: CDE_API_FLOWS_URL
+ value:
+ _default: "http://backend-service.flows.svc.cluster.local:8000"
+ - name: CDE_API_TRANSMITTALS_URL
+ value:
+ _default: "http://transmittal-service.transmittal.svc.cluster.local:80"
+ - name: CDE_API_WORKFLOWS_CONFIG_FILEPATH
+ value:
+ _default: "/etc/app/tasks_execution_config.json"
+ - name: CDE_API_REDIS__HOST
+ value:
+ _default: "redis"
+ - name: CDE_API_REDIS__PORT
+ value:
+ _default: "6379"
+ - name: CDE_API_DATABASE__HOST
+ value:
+ _default: "192.168.2.45"
+ - name: CDE_API_DATABASE__PORT
+ value:
+ _default: "5432"
+ - name: CDE_API_DATABASE__NAME
+ value:
+ _default: "documentations"
+ secretEnvs:
+ - name: CDE_API_DATABASE__USER
+ secretName:
+ _default: "postgres-secret"
+ secretKey:
+ _default: "username"
+ - name: CDE_API_DATABASE__PASSWORD
+ secretName:
+ _default: "postgres-secret"
+ secretKey:
+ _default: "password"
+ - name: CDE_API_S3_ENDPOINT
+ secretName:
+ _default: "yc-s3"
+ secretKey:
+ _default: "endpoint_url"
+ - name: CDE_API_S3_ACCESS_KEY
+ secretName:
+ _default: "yc-s3"
+ secretKey:
+ _default: "key_id"
+ - name: CDE_API_S3_SECRET_KEY
+ secretName:
+ _default: "yc-s3"
+ secretKey:
+ _default: "access_key"
+ - name: CDE_API_ZEEBE_GATEWAY_ADDRESS
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "gateway_address"
+ - name: CDE_API_ZEEBE_CLIENT_ID
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_id"
+ - name: CDE_API_ZEEBE_CLIENT_SECRET
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_secret"
+ - name: CDE_API_ZEEBE_AUTH_SERVER_URL
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "auth_server_url"
+ volumes:
+ _default:
+ - name: tasks-execution-config
+ mountPath:
+ _default: /etc/app/tasks_execution_config.json
+ subPath:
+ _default: tasks_execution_config.json
+ readOnly:
+ _default: true
+ configMap:
+ name:
+ _default: tasks-execution-config-documentation-v2
+ items:
+ - key: tasks-execution-config-documentation-v2.json
+ path:
+ _default: tasks_execution_config.json
+ defaultMode:
+ _default: "0644"
diff --git a/apps/documentations/brusnika-stage/cde-api-worker-s32d-handle-error.yaml b/apps/documentations/brusnika-stage/cde-api-worker-s32d-handle-error.yaml
new file mode 100644
index 0000000..cd6ce75
--- /dev/null
+++ b/apps/documentations/brusnika-stage/cde-api-worker-s32d-handle-error.yaml
@@ -0,0 +1,252 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2
+kind: HelmRelease
+metadata:
+ name: cde-api-worker-s32d-handle-error
+ namespace: documentations
+spec:
+ interval: 10m
+ chart:
+ spec:
+ chart: universal-chart
+ version: "0.1.7"
+ sourceRef:
+ kind: HelmRepository
+ name: yc-oci-charts
+ namespace: flux-system
+ interval: 10m
+ install:
+ remediation:
+ retries: 3
+ upgrade:
+ remediation:
+ retries: 3
+ values:
+ global:
+ env: _default
+ services:
+ worker-s32d-handle-error:
+ enabled: true
+ deployment:
+ enabled: true
+ name:
+ _default: worker-s32d-handle-error
+ replicaCount:
+ _default: 1
+ revisionHistoryLimit:
+ _default: 5
+ resources:
+ requests:
+ cpu:
+ _default: 50m
+ memory:
+ _default: 64Mi
+ image:
+ name:
+ _default: cr.yandex/crp3ccidau046kdj8g9q/cde-api-worker-s32d-handle-error:stage_c9bc246
+ pullPolicy:
+ _default: IfNotPresent
+ service:
+ enabled: false
+ imagePullSecrets:
+ enabled:
+ _default: true
+ name:
+ _default: regcred
+ envs:
+ - name: CDE_API_EAV_HOST
+ value:
+ _default: "http://eav-service.eav.svc.cluster.local:8000"
+ - name: CDE_API_APP_NAME
+ value:
+ _default: "worker-s32d-handle-error"
+ - name: CDE_API_SENTRY_DSN
+ value:
+ _default: ""
+ - name: CDE_API_SENTRY_ENVIRONMENT
+ value:
+ _default: ""
+ - name: CDE_API_LOG_LEVEL
+ value:
+ _default: "info"
+ - name: CDE_API_OBSERVABILITY_ENABLE
+ value:
+ _default: "true"
+ - name: CDE_API_OBSERVABILITY_HOST
+ value:
+ _default: "signoz-otel-collector.signoz.svc.cluster.local"
+ - name: CDE_API_OBSERVABILITY_PORT
+ value:
+ _default: "4317"
+ - name: CDE_API_S3_MAX_SINGLE_UPLOAD_SIZE
+ value:
+ _default: "5368709120"
+ - name: CDE_API_S3_MAX_PART_SIZE
+ value:
+ _default: "524288000"
+ - name: CDE_API_S3_UPLOAD_STALL_TIMEOUT
+ value:
+ _default: "10m"
+ - name: CDE_API_OBSERVABILITY_SERVICE_NAME
+ value:
+ _default: "worker-s32d-handle-error"
+ - name: CDE_API_DATABASE__SSLMODE
+ value:
+ _default: "disable"
+ - name: CDE_API_DATABASE__INSECURE_SKIP_TLS
+ value:
+ _default: "false"
+ - name: CDE_API_DATABASE_MAX_CONN_LIFETIME
+ value:
+ _default: "30m"
+ - name: CDE_API_DATABASE_MAX_CONN_IDLE_TIME
+ value:
+ _default: "10m"
+ - name: CDE_API_DATABASE_HEALTH_CHECK_PERIOD
+ value:
+ _default: "30s"
+ - name: CDE_API_DATABASE_POOL_SIZE
+ value:
+ _default: "2"
+ - name: CDE_API_REDIS__SSL
+ value:
+ _default: "false"
+ - name: CDE_API_REDIS__POOL_SIZE
+ value:
+ _default: "3"
+ - name: CDE_API_REDIS__MIN_IDLE_CONNS
+ value:
+ _default: "1"
+ - name: CDE_API_REDIS__DIAL_TIMEOUT_MS
+ value:
+ _default: "5000"
+ - name: CDE_API_REDIS__READ_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__WRITE_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__DEFAULT_TTL_MINUTES
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__PERMISSION_CACHE_ENABLED
+ value:
+ _default: "false"
+ - name: CDE_API_S3_USE_SSL
+ value:
+ _default: "true"
+ - name: CDE_API_S3_BUCKET_LOOKUP
+ value:
+ _default: "auto"
+ - name: CDE_API_S3_INSECURE_SKIP_TLS
+ value:
+ _default: "true"
+ - name: CDE_API_S3_CHECK_BUCKET
+ value:
+ _default: "false"
+ - name: CDE_API_S3_BUCKET_NAME
+ value:
+ _default: "documentations-stage"
+ - name: CDE_API_ZEEBE_USE_PLAINTEXT
+ value:
+ _default: "true"
+ - name: CDE_API_S32D_WORKER_HANDLE_ERROR_TIMEOUT_MIN
+ value:
+ _default: "10"
+ - name: CDE_API_S32D_WORKER_HANDLE_ERROR_MAX_JOBS
+ value:
+ _default: "4"
+ - name: CDE_API_MAILER_BASE_URL
+ value:
+ _default: "http://mailer-service.generic:8000"
+ - name: CDE_API_MAILER_FROM_EMAIL
+ value:
+ _default: "noreply@sarex.io"
+ - name: CDE_API_FLOWS_URL
+ value:
+ _default: "http://backend-service.flows.svc.cluster.local:8000"
+ - name: CDE_API_TRANSMITTALS_URL
+ value:
+ _default: "http://transmittal-service.transmittal.svc.cluster.local:80"
+ - name: CDE_API_WORKFLOWS_CONFIG_FILEPATH
+ value:
+ _default: "/etc/app/tasks_execution_config.json"
+ - name: CDE_API_REDIS__HOST
+ value:
+ _default: "redis"
+ - name: CDE_API_REDIS__PORT
+ value:
+ _default: "6379"
+ - name: CDE_API_DATABASE__HOST
+ value:
+ _default: "192.168.2.45"
+ - name: CDE_API_DATABASE__PORT
+ value:
+ _default: "5432"
+ - name: CDE_API_DATABASE__NAME
+ value:
+ _default: "documentations"
+ secretEnvs:
+ - name: CDE_API_DATABASE__USER
+ secretName:
+ _default: "postgres-secret"
+ secretKey:
+ _default: "username"
+ - name: CDE_API_DATABASE__PASSWORD
+ secretName:
+ _default: "postgres-secret"
+ secretKey:
+ _default: "password"
+ - name: CDE_API_S3_ENDPOINT
+ secretName:
+ _default: "yc-s3"
+ secretKey:
+ _default: "endpoint_url"
+ - name: CDE_API_S3_ACCESS_KEY
+ secretName:
+ _default: "yc-s3"
+ secretKey:
+ _default: "key_id"
+ - name: CDE_API_S3_SECRET_KEY
+ secretName:
+ _default: "yc-s3"
+ secretKey:
+ _default: "access_key"
+ - name: CDE_API_ZEEBE_GATEWAY_ADDRESS
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "gateway_address"
+ - name: CDE_API_ZEEBE_CLIENT_ID
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_id"
+ - name: CDE_API_ZEEBE_CLIENT_SECRET
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_secret"
+ - name: CDE_API_ZEEBE_AUTH_SERVER_URL
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "auth_server_url"
+ volumes:
+ _default:
+ - name: tasks-execution-config
+ mountPath:
+ _default: /etc/app/tasks_execution_config.json
+ subPath:
+ _default: tasks_execution_config.json
+ readOnly:
+ _default: true
+ configMap:
+ name:
+ _default: tasks-execution-config-documentation-v2
+ items:
+ - key: tasks-execution-config-documentation-v2.json
+ path:
+ _default: tasks_execution_config.json
+ defaultMode:
+ _default: "0644"
diff --git a/apps/documentations/brusnika-stage/cde-api-worker-s32d-process-workflows.yaml b/apps/documentations/brusnika-stage/cde-api-worker-s32d-process-workflows.yaml
new file mode 100644
index 0000000..786b1bb
--- /dev/null
+++ b/apps/documentations/brusnika-stage/cde-api-worker-s32d-process-workflows.yaml
@@ -0,0 +1,321 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2
+kind: HelmRelease
+metadata:
+ name: cde-api-worker-s32d-process-workflows
+ namespace: documentations
+spec:
+ interval: 10m
+ chart:
+ spec:
+ chart: universal-chart
+ version: "0.1.7"
+ sourceRef:
+ kind: HelmRepository
+ name: yc-oci-charts
+ namespace: flux-system
+ interval: 10m
+ install:
+ remediation:
+ retries: 3
+ upgrade:
+ remediation:
+ retries: 3
+ values:
+ global:
+ env: _default
+ services:
+ worker-s32d-process-workflows:
+ enabled: true
+ deployment:
+ enabled: true
+ name:
+ _default: worker-s32d-process-workflows
+ replicaCount:
+ _default: 1
+ revisionHistoryLimit:
+ _default: 5
+ resources:
+ requests:
+ cpu:
+ _default: 200m
+ memory:
+ _default: 256Mi
+ image:
+ name:
+ _default: cr.yandex/crp3ccidau046kdj8g9q/cde-api-worker-s32d-process-workflows:stage_c9bc246
+ pullPolicy:
+ _default: IfNotPresent
+ service:
+ enabled: false
+ imagePullSecrets:
+ enabled:
+ _default: true
+ name:
+ _default: regcred
+ envs:
+ - name: CDE_API_EAV_HOST
+ value:
+ _default: "http://eav-service.eav.svc.cluster.local:8000"
+ - name: CDE_API_APP_NAME
+ value:
+ _default: "worker-s32d-process-workflows"
+ - name: CDE_API_SENTRY_DSN
+ value:
+ _default: ""
+ - name: CDE_API_SENTRY_ENVIRONMENT
+ value:
+ _default: ""
+ - name: CDE_API_LOG_LEVEL
+ value:
+ _default: "info"
+ - name: CDE_API_OBSERVABILITY_ENABLE
+ value:
+ _default: "true"
+ - name: CDE_API_OBSERVABILITY_HOST
+ value:
+ _default: "signoz-otel-collector.signoz.svc.cluster.local"
+ - name: CDE_API_OBSERVABILITY_PORT
+ value:
+ _default: "4317"
+ - name: CDE_API_S3_MAX_SINGLE_UPLOAD_SIZE
+ value:
+ _default: "5368709120"
+ - name: CDE_API_S3_MAX_PART_SIZE
+ value:
+ _default: "524288000"
+ - name: CDE_API_S3_UPLOAD_STALL_TIMEOUT
+ value:
+ _default: "10m"
+ - name: CDE_API_OBSERVABILITY_SERVICE_NAME
+ value:
+ _default: "worker-s32d-process-workflows"
+ - name: CDE_API_DATABASE__SSLMODE
+ value:
+ _default: "disable"
+ - name: CDE_API_DATABASE__INSECURE_SKIP_TLS
+ value:
+ _default: "false"
+ - name: CDE_API_DATABASE_MAX_CONN_LIFETIME
+ value:
+ _default: "30m"
+ - name: CDE_API_DATABASE_MAX_CONN_IDLE_TIME
+ value:
+ _default: "10m"
+ - name: CDE_API_DATABASE_HEALTH_CHECK_PERIOD
+ value:
+ _default: "30s"
+ - name: CDE_API_DATABASE_POOL_SIZE
+ value:
+ _default: "3"
+ - name: CDE_API_REDIS__SSL
+ value:
+ _default: "false"
+ - name: CDE_API_REDIS__POOL_SIZE
+ value:
+ _default: "5"
+ - name: CDE_API_REDIS__MIN_IDLE_CONNS
+ value:
+ _default: "1"
+ - name: CDE_API_REDIS__DIAL_TIMEOUT_MS
+ value:
+ _default: "5000"
+ - name: CDE_API_REDIS__READ_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__WRITE_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__DEFAULT_TTL_MINUTES
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__PERMISSION_CACHE_ENABLED
+ value:
+ _default: "false"
+ - name: CDE_API_S3_USE_SSL
+ value:
+ _default: "true"
+ - name: CDE_API_S3_BUCKET_LOOKUP
+ value:
+ _default: "auto"
+ - name: CDE_API_S3_INSECURE_SKIP_TLS
+ value:
+ _default: "true"
+ - name: CDE_API_S3_CHECK_BUCKET
+ value:
+ _default: "false"
+ - name: CDE_API_S3_BUCKET_NAME
+ value:
+ _default: "documentations-stage"
+ - name: CDE_API_ZEEBE_USE_PLAINTEXT
+ value:
+ _default: "true"
+ - name: CDE_API_S32D_WORKER_PROCESS_WORKFLOWS_TIMEOUT_MIN
+ value:
+ _default: "480"
+ - name: CDE_API_S32D_WORKER_PROCESS_WORKFLOWS_MAX_JOBS
+ value:
+ _default: "1"
+ - name: CDE_API_MAILER_BASE_URL
+ value:
+ _default: "http://mailer-service.generic:8000"
+ - name: CDE_API_MAILER_FROM_EMAIL
+ value:
+ _default: "noreply@sarex.io"
+ - name: CDE_API_WORKFLOW_BASE_URL
+ value:
+ _default: "http://workflows-api-service.workflow.svc.cluster.local:8000"
+ - name: CDE_API_WORKFLOW_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_WORKFLOW_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_BIMAPI_URL
+ value:
+ _default: "http://backend-service.bim.svc.cluster.local:8000"
+ - name: CDE_API_BIMAPI_V2_URL
+ value:
+ _default: "http://backend-service.bim.svc.cluster.local:8000"
+ - name: CDE_API_BIMAPI_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_BIMAPI_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_BIMAPI_TIMEOUT_V2_MS
+ value:
+ _default: "300000"
+ - name: CDE_API_CONTAINER_REGISTRY
+ value:
+ _default: "cr.yandex/crp3ccidau046kdj8g9q"
+ - name: CDE_API_WORKFLOWS_IMAGES_VERSION
+ value:
+ _default: "develop"
+ - name: CDE_API_DJANGO_HOST
+ value:
+ _default: "http://backend.django.svc.cluster.local:8000"
+ - name: CDE_API_ENVIRONMENT
+ value:
+ _default: "stage"
+ - name: CDE_API_CONVERTED_PDF_TO_S3
+ value:
+ _default: "true"
+ - name: CDE_API_CONVERT_DXF_TO_GEOJSON
+ value:
+ _default: "true"
+ - name: CDE_API_CONVERT_DWG_TO_GEOJSON
+ value:
+ _default: "true"
+ - name: CDE_API_USE_BIMV1_FOR_BIMV2
+ value:
+ _default: "false"
+ - name: CDE_API_LAST_MASTER_BIM
+ value:
+ _default: "2000"
+ - name: CDE_API_LAST_SLAVE_1_BIM
+ value:
+ _default: "2250"
+ - name: CDE_API_LAST_SLAVE_2_BIM
+ value:
+ _default: "15000"
+ - name: CDE_API_USE_BIM_INSERTER
+ value:
+ _default: "true"
+ - name: CDE_API_USE_LEGACY_BIM_FLOW
+ value:
+ _default: "0"
+ - name: CDE_API_DOCUMENTATION_V2_URL
+ value:
+ _default: "http://documentations-api.documentations.svc.cluster.local:8080"
+ - name: CDE_API_INTERNAL_URL
+ value:
+ _default: "http://cde-api.documentations:8000"
+ - name: CDE_API_FLOWS_URL
+ value:
+ _default: "http://backend-service.flows.svc.cluster.local:8000"
+ - name: CDE_API_TRANSMITTALS_URL
+ value:
+ _default: "http://transmittal-service.transmittal.svc.cluster.local:80"
+ - name: CDE_API_WORKFLOWS_CONFIG_FILEPATH
+ value:
+ _default: "/etc/app/tasks_execution_config.json"
+ - name: CDE_API_REDIS__HOST
+ value:
+ _default: "redis"
+ - name: CDE_API_REDIS__PORT
+ value:
+ _default: "6379"
+ - name: CDE_API_DATABASE__HOST
+ value:
+ _default: "192.168.2.45"
+ - name: CDE_API_DATABASE__PORT
+ value:
+ _default: "5432"
+ - name: CDE_API_DATABASE__NAME
+ value:
+ _default: "documentations"
+ secretEnvs:
+ - name: CDE_API_DATABASE__USER
+ secretName:
+ _default: "postgres-secret"
+ secretKey:
+ _default: "username"
+ - name: CDE_API_DATABASE__PASSWORD
+ secretName:
+ _default: "postgres-secret"
+ secretKey:
+ _default: "password"
+ - name: CDE_API_S3_ENDPOINT
+ secretName:
+ _default: "yc-s3"
+ secretKey:
+ _default: "endpoint_url"
+ - name: CDE_API_S3_ACCESS_KEY
+ secretName:
+ _default: "yc-s3"
+ secretKey:
+ _default: "key_id"
+ - name: CDE_API_S3_SECRET_KEY
+ secretName:
+ _default: "yc-s3"
+ secretKey:
+ _default: "access_key"
+ - name: CDE_API_ZEEBE_GATEWAY_ADDRESS
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "gateway_address"
+ - name: CDE_API_ZEEBE_CLIENT_ID
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_id"
+ - name: CDE_API_ZEEBE_CLIENT_SECRET
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_secret"
+ - name: CDE_API_ZEEBE_AUTH_SERVER_URL
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "auth_server_url"
+ volumes:
+ _default:
+ - name: tasks-execution-config
+ mountPath:
+ _default: /etc/app/tasks_execution_config.json
+ subPath:
+ _default: tasks_execution_config.json
+ readOnly:
+ _default: true
+ configMap:
+ name:
+ _default: tasks-execution-config-documentation-v2
+ items:
+ - key: tasks-execution-config-documentation-v2.json
+ path:
+ _default: tasks_execution_config.json
+ defaultMode:
+ _default: "0644"
diff --git a/apps/documentations/brusnika-stage/cde-api-worker-s32d-publish-documents.yaml b/apps/documentations/brusnika-stage/cde-api-worker-s32d-publish-documents.yaml
new file mode 100644
index 0000000..24546a0
--- /dev/null
+++ b/apps/documentations/brusnika-stage/cde-api-worker-s32d-publish-documents.yaml
@@ -0,0 +1,267 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2
+kind: HelmRelease
+metadata:
+ name: cde-api-worker-s32d-publish-documents
+ namespace: documentations
+spec:
+ interval: 10m
+ chart:
+ spec:
+ chart: universal-chart
+ version: "0.1.7"
+ sourceRef:
+ kind: HelmRepository
+ name: yc-oci-charts
+ namespace: flux-system
+ interval: 10m
+ install:
+ remediation:
+ retries: 3
+ upgrade:
+ remediation:
+ retries: 3
+ values:
+ global:
+ env: _default
+ services:
+ worker-s32d-publish-documents:
+ enabled: true
+ deployment:
+ enabled: true
+ name:
+ _default: worker-s32d-publish-documents
+ replicaCount:
+ _default: 1
+ revisionHistoryLimit:
+ _default: 5
+ resources:
+ requests:
+ cpu:
+ _default: 100m
+ memory:
+ _default: 64Mi
+ image:
+ name:
+ _default: cr.yandex/crp3ccidau046kdj8g9q/cde-api-worker-s32d-publish-documents:stage_c9bc246
+ pullPolicy:
+ _default: IfNotPresent
+ service:
+ enabled: false
+ imagePullSecrets:
+ enabled:
+ _default: true
+ name:
+ _default: regcred
+ envs:
+ - name: CDE_API_EAV_HOST
+ value:
+ _default: "http://eav-service.eav.svc.cluster.local:8000"
+ - name: CDE_API_APP_NAME
+ value:
+ _default: "worker-s32d-publish-documents"
+ - name: CDE_API_SENTRY_DSN
+ value:
+ _default: ""
+ - name: CDE_API_SENTRY_ENVIRONMENT
+ value:
+ _default: ""
+ - name: CDE_API_LOG_LEVEL
+ value:
+ _default: "info"
+ - name: CDE_API_OBSERVABILITY_ENABLE
+ value:
+ _default: "true"
+ - name: CDE_API_OBSERVABILITY_HOST
+ value:
+ _default: "signoz-otel-collector.signoz.svc.cluster.local"
+ - name: CDE_API_OBSERVABILITY_PORT
+ value:
+ _default: "4317"
+ - name: CDE_API_S3_MAX_SINGLE_UPLOAD_SIZE
+ value:
+ _default: "5368709120"
+ - name: CDE_API_S3_MAX_PART_SIZE
+ value:
+ _default: "524288000"
+ - name: CDE_API_S3_UPLOAD_STALL_TIMEOUT
+ value:
+ _default: "10m"
+ - name: CDE_API_OBSERVABILITY_SERVICE_NAME
+ value:
+ _default: "worker-s32d-publish-documents"
+ - name: CDE_API_DATABASE__SSLMODE
+ value:
+ _default: "disable"
+ - name: CDE_API_DATABASE__INSECURE_SKIP_TLS
+ value:
+ _default: "false"
+ - name: CDE_API_DATABASE_MAX_CONN_LIFETIME
+ value:
+ _default: "30m"
+ - name: CDE_API_DATABASE_MAX_CONN_IDLE_TIME
+ value:
+ _default: "10m"
+ - name: CDE_API_DATABASE_HEALTH_CHECK_PERIOD
+ value:
+ _default: "30s"
+ - name: CDE_API_DATABASE_POOL_SIZE
+ value:
+ _default: "3"
+ - name: CDE_API_REDIS__SSL
+ value:
+ _default: "false"
+ - name: CDE_API_REDIS__POOL_SIZE
+ value:
+ _default: "5"
+ - name: CDE_API_REDIS__MIN_IDLE_CONNS
+ value:
+ _default: "1"
+ - name: CDE_API_REDIS__DIAL_TIMEOUT_MS
+ value:
+ _default: "5000"
+ - name: CDE_API_REDIS__READ_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__WRITE_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__DEFAULT_TTL_MINUTES
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__PERMISSION_CACHE_ENABLED
+ value:
+ _default: "false"
+ - name: CDE_API_S3_USE_SSL
+ value:
+ _default: "true"
+ - name: CDE_API_S3_BUCKET_LOOKUP
+ value:
+ _default: "auto"
+ - name: CDE_API_S3_INSECURE_SKIP_TLS
+ value:
+ _default: "true"
+ - name: CDE_API_S3_CHECK_BUCKET
+ value:
+ _default: "false"
+ - name: CDE_API_S3_BUCKET_NAME
+ value:
+ _default: "documentations-stage"
+ - name: CDE_API_ZEEBE_USE_PLAINTEXT
+ value:
+ _default: "true"
+ - name: CDE_API_S32D_WORKER_PUBLISH_DOCUMENTS_TIMEOUT_MIN
+ value:
+ _default: "10"
+ - name: CDE_API_S32D_WORKER_PUBLISH_DOCUMENTS_MAX_JOBS
+ value:
+ _default: "2"
+ - name: CDE_API_MAILER_BASE_URL
+ value:
+ _default: "http://mailer-service.generic:8000"
+ - name: CDE_API_MAILER_FROM_EMAIL
+ value:
+ _default: "noreply@sarex.io"
+ - name: CDE_API_SYSTEMLOG_BASE_URL
+ value:
+ _default: "http://api-service.system-log.svc.cluster.local:80"
+ - name: CDE_API_SYSTEMLOG_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_FLOWS_URL
+ value:
+ _default: "http://backend-service.flows.svc.cluster.local:8000"
+ - name: CDE_API_TRANSMITTALS_URL
+ value:
+ _default: "http://transmittal-service.transmittal.svc.cluster.local:80"
+ - name: CDE_API_WORKSPACE_BASE_URL
+ value:
+ _default: "http://workspaces-service.workspaces.svc.cluster.local:8000"
+ - name: CDE_API_WORKSPACE_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_WORKSPACE_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_WORKFLOWS_CONFIG_FILEPATH
+ value:
+ _default: "/etc/app/tasks_execution_config.json"
+ - name: CDE_API_REDIS__HOST
+ value:
+ _default: "redis"
+ - name: CDE_API_REDIS__PORT
+ value:
+ _default: "6379"
+ - name: CDE_API_DATABASE__HOST
+ value:
+ _default: "192.168.2.45"
+ - name: CDE_API_DATABASE__PORT
+ value:
+ _default: "5432"
+ - name: CDE_API_DATABASE__NAME
+ value:
+ _default: "documentations"
+ secretEnvs:
+ - name: CDE_API_DATABASE__USER
+ secretName:
+ _default: "postgres-secret"
+ secretKey:
+ _default: "username"
+ - name: CDE_API_DATABASE__PASSWORD
+ secretName:
+ _default: "postgres-secret"
+ secretKey:
+ _default: "password"
+ - name: CDE_API_S3_ENDPOINT
+ secretName:
+ _default: "yc-s3"
+ secretKey:
+ _default: "endpoint_url"
+ - name: CDE_API_S3_ACCESS_KEY
+ secretName:
+ _default: "yc-s3"
+ secretKey:
+ _default: "key_id"
+ - name: CDE_API_S3_SECRET_KEY
+ secretName:
+ _default: "yc-s3"
+ secretKey:
+ _default: "access_key"
+ - name: CDE_API_ZEEBE_GATEWAY_ADDRESS
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "gateway_address"
+ - name: CDE_API_ZEEBE_CLIENT_ID
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_id"
+ - name: CDE_API_ZEEBE_CLIENT_SECRET
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_secret"
+ - name: CDE_API_ZEEBE_AUTH_SERVER_URL
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "auth_server_url"
+ volumes:
+ _default:
+ - name: tasks-execution-config
+ mountPath:
+ _default: /etc/app/tasks_execution_config.json
+ subPath:
+ _default: tasks_execution_config.json
+ readOnly:
+ _default: true
+ configMap:
+ name:
+ _default: tasks-execution-config-documentation-v2
+ items:
+ - key: tasks-execution-config-documentation-v2.json
+ path:
+ _default: tasks_execution_config.json
+ defaultMode:
+ _default: "0644"
diff --git a/apps/documentations/brusnika-stage/cde-api.yaml b/apps/documentations/brusnika-stage/cde-api.yaml
new file mode 100644
index 0000000..a9d0138
--- /dev/null
+++ b/apps/documentations/brusnika-stage/cde-api.yaml
@@ -0,0 +1,458 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2
+kind: HelmRelease
+metadata:
+ name: cde-api
+ namespace: documentations
+spec:
+ interval: 10m
+ chart:
+ spec:
+ chart: universal-chart
+ version: "0.1.7"
+ sourceRef:
+ kind: HelmRepository
+ name: yc-oci-charts
+ namespace: flux-system
+ interval: 10m
+ install:
+ remediation:
+ retries: 3
+ upgrade:
+ remediation:
+ retries: 3
+ values:
+ global:
+ env: _default
+ services:
+ cde-api:
+ enabled: true
+ deployment:
+ enabled: true
+ name:
+ _default: cde-api
+ replicaCount:
+ _default: 1
+ revisionHistoryLimit:
+ _default: 5
+ port:
+ _default: 8000
+ resources:
+ requests:
+ cpu:
+ _default: 200m
+ memory:
+ _default: 256Mi
+ image:
+ name:
+ _default: cr.yandex/crp3ccidau046kdj8g9q/cde-api:stage_c9bc246
+ pullPolicy:
+ _default: IfNotPresent
+ service:
+ enabled: true
+ name:
+ _default: cde-api
+ type:
+ _default: ClusterIP
+ port:
+ _default: 8000
+ targetPort:
+ _default: 8000
+ portName:
+ _default: http
+ imagePullSecrets:
+ enabled:
+ _default: true
+ name:
+ _default: regcred
+ envs:
+ - name: CDE_API_RESOURCES_BASE_URL
+ value:
+ _default: "http://iams.platform.svc.cluster.local:8080"
+ - name: CDE_API_RESOURCES_TIMEOUT
+ value:
+ _default: "10s"
+ - name: CDE_API_APP_NAME
+ value:
+ _default: "cde-api"
+ - name: CDE_API_SENTRY_DSN
+ value:
+ _default: ""
+ - name: CDE_API_SENTRY_ENVIRONMENT
+ value:
+ _default: ""
+ - name: CDE_API_LOG_LEVEL
+ value:
+ _default: "debug"
+ - name: CDE_API_HTTP_PORT
+ value:
+ _default: "8000"
+ - name: CDE_API_HTTP_READ_TIMEOUT
+ value:
+ _default: "0s"
+ - name: CDE_API_HTTP_WRITE_TIMEOUT
+ value:
+ _default: "0s"
+ - name: CDE_API_HTTP_IDLE_TIMEOUT
+ value:
+ _default: "120s"
+ - name: CDE_API_HTTP_READ_BUFFER_SIZE
+ value:
+ _default: "96"
+ - name: CDE_API_OBSERVABILITY_ENABLE
+ value:
+ _default: "true"
+ - name: CDE_API_OBSERVABILITY_HOST
+ value:
+ _default: "signoz-otel-collector.signoz.svc.cluster.local"
+ - name: CDE_API_OBSERVABILITY_PORT
+ value:
+ _default: "4317"
+ - name: CDE_API_S3_MAX_SINGLE_UPLOAD_SIZE
+ value:
+ _default: "5368709120"
+ - name: CDE_API_S3_MAX_PART_SIZE
+ value:
+ _default: "524288000"
+ - name: CDE_API_S3_UPLOAD_STALL_TIMEOUT
+ value:
+ _default: "10m"
+ - name: CDE_API_PUBLIC_LINK_HOST
+ value:
+ _default: "https://document-link.test.sarex.brusnika.tech"
+ - name: CDE_API_WORKFLOW_BASE_URL
+ value:
+ _default: "http://workflows-api-service.workflow.svc.cluster.local:8000"
+ - name: CDE_API_WORKFLOW_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_WORKFLOW_RETRY_WAIT_MS
+ value:
+ _default: "500"
+ - name: CDE_API_WORKFLOW_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_BIMAPI_URL
+ value:
+ _default: "http://backend-service.bim.svc.cluster.local:8000"
+ - name: CDE_API_BIMAPI_V2_URL
+ value:
+ _default: "http://backend-service.bim.svc.cluster.local:8000"
+ - name: CDE_API_BIMAPI_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_BIMAPI_RETRY_WAIT_MS
+ value:
+ _default: "1000"
+ - name: CDE_API_BIMAPI_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_BIMAPI_TIMEOUT_V2_MS
+ value:
+ _default: "300000"
+ - name: CDE_API_WORKSPACE_BASE_URL
+ value:
+ _default: "http://workspaces-service.workspaces.svc.cluster.local:8000"
+ - name: CDE_API_WORKSPACE_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_WORKSPACE_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_SYSTEMLOG_BASE_URL
+ value:
+ _default: "http://api-service.system-log.svc.cluster.local:80"
+ - name: CDE_API_SYSTEMLOG_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_CONTAINER_REGISTRY
+ value:
+ _default: "cr.yandex/crp3ccidau046kdj8g9q"
+ - name: CDE_API_WORKFLOWS_IMAGES_VERSION
+ value:
+ _default: "develop"
+ - name: CDE_API_DJANGO_HOST
+ value:
+ _default: "http://backend.django.svc.cluster.local:8000"
+ - name: CDE_API_ENVIRONMENT
+ value:
+ _default: "stage"
+ - name: CDE_API_CONVERTED_PDF_TO_S3
+ value:
+ _default: "true"
+ - name: CDE_API_CONVERT_DXF_TO_GEOJSON
+ value:
+ _default: "true"
+ - name: CDE_API_CONVERT_DWG_TO_GEOJSON
+ value:
+ _default: "true"
+ - name: CDE_API_USE_BIMV1_FOR_BIMV2
+ value:
+ _default: "false"
+ - name: CDE_API_EAV_HOST
+ value:
+ _default: "http://eav-service.eav.svc.cluster.local:8000"
+ - name: CDE_API_EAV_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_DOCUMENTATION_V2_URL
+ value:
+ _default: "http://documentations-api.documentations.svc.cluster.local:8080"
+ - name: CDE_API_INTERNAL_URL
+ value:
+ _default: "http://cde-api.documentations:8000"
+ - name: CDE_API_COPY_MAX_SYNC_WAIT_MS
+ value:
+ _default: "300000"
+ - name: CDE_API_LAST_MASTER_BIM
+ value:
+ _default: "2000"
+ - name: CDE_API_LAST_SLAVE_1_BIM
+ value:
+ _default: "2250"
+ - name: CDE_API_LAST_SLAVE_2_BIM
+ value:
+ _default: "15000"
+ - name: CDE_API_USE_BIM_INSERTER
+ value:
+ _default: "true"
+ - name: CDE_API_USE_LEGACY_BIM_FLOW
+ value:
+ _default: "0"
+ - name: CDE_API_DATABASE_MAX_CONN_LIFETIME
+ value:
+ _default: "30m"
+ - name: CDE_API_DATABASE_MAX_CONN_IDLE_TIME
+ value:
+ _default: "10m"
+ - name: CDE_API_DATABASE_HEALTH_CHECK_PERIOD
+ value:
+ _default: "30s"
+ - name: CDE_API_DATABASE_POOL_SIZE
+ value:
+ _default: "2"
+ - name: CDE_API_DIAGNOSTICS_SLOW_OPERATION_THRESHOLD
+ value:
+ _default: "30s"
+ - name: CDE_API_DATABASE__SSLMODE
+ value:
+ _default: "disable"
+ - name: CDE_API_DATABASE__INSECURE_SKIP_TLS
+ value:
+ _default: "false"
+ - name: CDE_API_DATABASE_OBSERVABILITY_ENABLE
+ value:
+ _default: "true"
+ - name: CDE_API_REDIS__DB
+ value:
+ _default: "5"
+ - name: CDE_API_REDIS__SSL
+ value:
+ _default: "false"
+ - name: CDE_API_REDIS__POOL_SIZE
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__MIN_IDLE_CONNS
+ value:
+ _default: "2"
+ - name: CDE_API_REDIS__DIAL_TIMEOUT_MS
+ value:
+ _default: "5000"
+ - name: CDE_API_REDIS__READ_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__WRITE_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__DEFAULT_TTL_MINUTES
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__PERMISSION_CACHE_ENABLED
+ value:
+ _default: "false"
+ - name: CDE_API_S3_BUCKET_NAME
+ value:
+ _default: "documentations-stage"
+ - name: CDE_API_S3_USE_SSL
+ value:
+ _default: "true"
+ - name: CDE_API_S3_BUCKET_LOOKUP
+ value:
+ _default: "auto"
+ - name: CDE_API_S3_INSECURE_SKIP_TLS
+ value:
+ _default: "true"
+ - name: CDE_API_S3_CHECK_BUCKET
+ value:
+ _default: "false"
+ - name: CDE_API_S3_CONNECT_TIMEOUT
+ value:
+ _default: "10s"
+ - name: CDE_API_S3_TLS_HANDSHAKE_TIMEOUT
+ value:
+ _default: "10s"
+ - name: CDE_API_S32D_MAX_ARCHIVE_SIZE_BYTES
+ value:
+ _default: "1099511627776"
+ - name: CDE_API_S32D_MAX_FILES_COUNT
+ value:
+ _default: "500"
+ - name: CDE_API_ZEEBE_USE_PLAINTEXT
+ value:
+ _default: "true"
+ - name: CDE_API_USERS_BASE_URL
+ value:
+ _default: "http://backend.django.svc.cluster.local:8000"
+ - name: CDE_API_DISK_BUCKET_NAMESPACE
+ value:
+ _default: "documentations-stage"
+ - name: CDE_API_USERS_ORIGINATOR
+ value:
+ _default: "docs_stage"
+ - name: CDE_API_USERS_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_MAILER_BASE_URL
+ value:
+ _default: "http://mailer-service.generic:8000"
+ - name: CDE_API_MAILER_FROM_EMAIL
+ value:
+ _default: "noreply@sarex.io"
+ - name: CDE_API_MAILER_RETRY_COUNT
+ value:
+ _default: "2"
+ - name: CDE_API_MAILER_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_FLOWS_URL
+ value:
+ _default: "http://backend-service.flows.svc.cluster.local:8000"
+ - name: CDE_API_TRANSMITTALS_URL
+ value:
+ _default: "http://transmittal-service.transmittal.svc.cluster.local:80"
+ - name: CDE_API_WORKFLOWS_CONFIG_FILEPATH
+ value:
+ _default: "/etc/app/tasks_execution_config.json"
+ - name: CDE_API_RABBITMQ__MARKS_ROUTING_KEY
+ value:
+ _default: "pdf_markings_input"
+ - name: CDE_API_RABBITMQ__HASHER_ROUTING_KEY
+ value:
+ _default: "hash.compute.normal"
+ - name: CDE_API_RABBITMQ__HASHER_EXCHANGE
+ value:
+ _default: "hash.compute"
+ - name: CDE_API_REDIS__HOST
+ value:
+ _default: "redis"
+ - name: CDE_API_REDIS__PORT
+ value:
+ _default: "6379"
+ - name: CDE_API_DATABASE__HOST
+ value:
+ _default: "192.168.2.45"
+ - name: CDE_API_DATABASE__PORT
+ value:
+ _default: "5432"
+ - name: CDE_API_DATABASE__NAME
+ value:
+ _default: "documentations"
+ secretEnvs:
+ - name: CDE_API_PUBLIC_KEY
+ secretName:
+ _default: "public-key"
+ secretKey:
+ _default: "key"
+ - name: CDE_API_DATABASE__USER
+ secretName:
+ _default: "postgres-secret"
+ secretKey:
+ _default: "username"
+ - name: CDE_API_DATABASE__PASSWORD
+ secretName:
+ _default: "postgres-secret"
+ secretKey:
+ _default: "password"
+ - name: CDE_API_S3_ENDPOINT
+ secretName:
+ _default: "yc-s3"
+ secretKey:
+ _default: "endpoint_url"
+ - name: CDE_API_S3_ACCESS_KEY
+ secretName:
+ _default: "yc-s3"
+ secretKey:
+ _default: "key_id"
+ - name: CDE_API_S3_SECRET_KEY
+ secretName:
+ _default: "yc-s3"
+ secretKey:
+ _default: "access_key"
+ - name: CDE_API_ZEEBE_GATEWAY_ADDRESS
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "gateway_address"
+ - name: CDE_API_ZEEBE_CLIENT_ID
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_id"
+ - name: CDE_API_ZEEBE_CLIENT_SECRET
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_secret"
+ - name: CDE_API_ZEEBE_AUTH_SERVER_URL
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "auth_server_url"
+ - name: CDE_API_USERS_AUTH_TOKEN
+ secretName:
+ _default: "django-auth"
+ secretKey:
+ _default: "key"
+ - name: CDE_API_RABBITMQ__HOST
+ secretName:
+ _default: "rabbitmq"
+ secretKey:
+ _default: "host"
+ - name: CDE_API_RABBITMQ__PORT
+ secretName:
+ _default: "rabbitmq"
+ secretKey:
+ _default: "port"
+ - name: CDE_API_RABBITMQ__USER
+ secretName:
+ _default: "rabbitmq"
+ secretKey:
+ _default: "username"
+ - name: CDE_API_RABBITMQ__PASSWORD
+ secretName:
+ _default: "rabbitmq"
+ secretKey:
+ _default: "password"
+ - name: CDE_API_RABBITMQ__VHOST
+ secretName:
+ _default: "rabbitmq"
+ secretKey:
+ _default: "vhost"
+ volumes:
+ _default:
+ - name: tasks-execution-config
+ mountPath:
+ _default: /etc/app/tasks_execution_config.json
+ subPath:
+ _default: tasks_execution_config.json
+ readOnly:
+ _default: true
+ configMap:
+ name:
+ _default: tasks-execution-config-documentation-v2
+ items:
+ - key: tasks-execution-config-documentation-v2.json
+ path:
+ _default: tasks_execution_config.json
+ defaultMode:
+ _default: "0644"
diff --git a/apps/documentations/brusnika-stage/kustomization.yaml b/apps/documentations/brusnika-stage/kustomization.yaml
index 247514e..d96ba1d 100644
--- a/apps/documentations/brusnika-stage/kustomization.yaml
+++ b/apps/documentations/brusnika-stage/kustomization.yaml
@@ -9,3 +9,11 @@ resources:
- filestream.yaml
- hasher.yaml
- pdf-markings-amqp.yaml
+ - tasks-execution-config.yaml
+ - cde-api.yaml
+ - cde-api-worker-s32d-create-upload.yaml
+ - cde-api-worker-s32d-process-workflows.yaml
+ - cde-api-worker-s32d-publish-documents.yaml
+ - cde-api-worker-s32d-handle-error.yaml
+ - cde-api-worker-copy.yaml
+ - cde-api-worker-move.yaml
diff --git a/apps/documentations/brusnika-stage/tasks-execution-config.yaml b/apps/documentations/brusnika-stage/tasks-execution-config.yaml
new file mode 100644
index 0000000..f4fa140
--- /dev/null
+++ b/apps/documentations/brusnika-stage/tasks-execution-config.yaml
@@ -0,0 +1,180 @@
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: tasks-execution-config-documentation-v2
+ namespace: documentations
+data:
+ tasks-execution-config-documentation-v2.json: |
+ {
+ "bim_api_metadata_inserter": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "bim_api_metadata_inserter_v2": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "bim_api_metadata_inserter_v4": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "bim_differ": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "bim_updater": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "convert_to_potree": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "docx_to_pdf": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "dwg_to_geojson": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_limits": "4",
+ "cpu_requests": "100m",
+ "memory_limits": "40Gi",
+ "memory_requests": "64Mi"
+ }
+ },
+ "e57_to_las": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "ifc_converter_job": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "las_merge": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "mesh_optimizer": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "mesh_optimizer_v2": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "parsing_template": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "processing_converter_to_tiles": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "processing_create_colored_surface_from_geotiff": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "rendering_template": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "split_pdf_document": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "split_pdf_document_legacy": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "update_orthomosaic_data": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "web_hook_caller": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "xml_to_glb": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "document_converter": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "sparkjs_converter_wrapper": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ }
+ }
diff --git a/apps/documentations/cde-api.CONFIGURATION.md b/apps/documentations/cde-api.CONFIGURATION.md
new file mode 100644
index 0000000..f6057a0
--- /dev/null
+++ b/apps/documentations/cde-api.CONFIGURATION.md
@@ -0,0 +1,236 @@
+# Конфигурация cde-api и его воркеров
+
+Документ описывает переменные окружения `cde-api` и воркеров, развёрнутых в неймспейсе `documentations`. Манифесты — `base/cde-api*.yaml` (канонический вариант) и одноимённые файлы в оверлеях контуров. Источник значений — `cde-api/.helm/values.yaml`; значения в таблицах — из `base` (контуры переопределяют URL зависимостей, см. ниже).
+
+## Процессы
+
+| HelmRelease | Deployment | Образ | Service | Назначение |
+| --- | --- | --- | --- | --- |
+| `cde-api` | `cde-api` | `cde-api` | `cde-api:8000` | HTTP-API (`CDE_API_HTTP_PORT=8000`) |
+| `cde-api-worker-s32d-create-upload` | `worker-s32d-create-upload` | `cde-api-worker-s32d-create-upload` | — | воркер S32D: создание и загрузка s3→disk |
+| `cde-api-worker-s32d-process-workflows` | `worker-s32d-process-workflows` | `cde-api-worker-s32d-process-workflows` | — | воркер S32D: запуск workflow-обработки |
+| `cde-api-worker-s32d-publish-documents` | `worker-s32d-publish-documents` | `cde-api-worker-s32d-publish-documents` | — | воркер S32D: публикация документов |
+| `cde-api-worker-s32d-handle-error` | `worker-s32d-handle-error` | `cde-api-worker-s32d-handle-error` | — | воркер S32D: обработка ошибок |
+| `cde-api-worker-copy` | `worker-copy` | `cde-api-worker-copy` | — | воркер копирования |
+| `cde-api-worker-move` | `worker-move` | `cde-api-worker-move` | — | воркер перемещения |
+
+Не развёрнуты (в `universal-chart` нет поддержки `cronjobs`): `workspace-recovery`, `resource-id-backfill`, `sizer` — остаются в `cde-api/.helm`.
+
+Назначение воркеров выведено из имён образов и переменных `CDE_API_S32D_*`; точное поведение — в коде `cde-api/cmd`.
+
+## Способ конфигурирования
+
+- Только переменные окружения с префиксом `CDE_API_`; вложенные секции задаются через `__` (`CDE_API_DATABASE__HOST`).
+- Несекретные значения — `envs` в HelmRelease. Секреты: в vault-контурах (`base`, а значит `sarex-contour`, `yc-k8s-test`, `d8-ugmk-prod`, `uralkal`, `vad`) — Vault Agent Injector (файлы в `/vault/secrets/`, которые `command: /bin/sh -ec` загружает в окружение перед `exec /opt/main` / `exec /opt/worker`, как у `documentations-api`); в остальных (`ugok`, `brusnika-*`, `wb`) — k8s `secretEnvs`.
+- Для Vault-схемы в образы cde-api добавлен статический busybox (`/bin/sh`, `/bin/cat`) — см. `.docker/*/Dockerfile` в репозитории cde-api; без него контейнер не стартует.
+- **Postgres, Valkey и S3 — общие с documentations** (отдельных ресурсов у cde-api нет): БД и креды те же, что у `documentations-api`; Valkey — внутрикластерный `redis:6379` (ns `documentations`, без TLS и пароля, DB 5); S3 — доступ MinIO из `secrets/data/minio/apps/documentations`.
+- Файл `/etc/app/tasks_execution_config.json` (`CDE_API_WORKFLOWS_CONFIG_FILEPATH`) монтируется из ConfigMap `tasks-execution-config-documentation-v2` (`tasks-execution-config.yaml`; содержимое — `cde-api/.example.tasks_execution_config.json`, в реальных контурах заменить боевыми ресурсами задач).
+- Значения по умолчанию в `values.yaml` источника — для stage; в iac всегда `global.env=_default`, поэтому здесь взяты prod-значения, а URL зависимостей — по конвенции соответствующего контура (из его `api.yaml`).
+
+## Секреты в Vault (vault-контуры)
+
+Инжектируются Vault Agent (role `documentations`, SA `documentations-vault`); каждый путь — отдельный файл `/vault/secrets/cde-api-<имя>`.
+
+| Файл | Путь Vault | Переменные | Процессы |
+| --- | --- | --- | --- |
+| `postgres` | `secrets/data/apps/documentations/postgres` (общий с documentations) | `CDE_API_DATABASE__HOST/PORT/NAME/USER/PASSWORD` | все |
+| `s3` | `secrets/data/minio/apps/documentations` (общий) | `CDE_API_S3_ENDPOINT/ACCESS_KEY/SECRET_KEY` | все |
+| `zeebe` | `secrets/data/apps/cde-api/zeebe` (**нужно создать**: `gateway_address`, `client_id`, `client_secret`, `auth_server_url`) | `CDE_API_ZEEBE_*` | все |
+| `rabbitmq` | `secrets/data/rabbitmq/apps/cde` | `CDE_API_RABBITMQ__USER/PASSWORD/VHOST` (хост и порт — в envs) | api, copy, move |
+| `django-auth` | `secrets/data/vault/common/django_auth` (ключ `key`) | `CDE_API_USERS_AUTH_TOKEN` | api |
+| `rsa-public` | `secrets/data/vault/common/rsa_keys` (ключ `public_key`) | `CDE_API_PUBLIC_KEY` | api |
+
+Точный состав файлов у каждого процесса — в `podAnnotations` его HelmRelease.
+
+## Секреты k8s-контуров (`ugok`, `brusnika-*`, `wb`; ns `documentations`)
+
+Postgres — тот же хост/БД, что у `documentations-api` контура (литералы в envs), логин/пароль из его секрета (`postgres-secret` или `documentations-postgresql-secret`, ключи `username`/`password`); Valkey — `redis`. S3 и RabbitMQ — Secret'ы, которые в контуре уже используют hasher / pdf-markings / api; новый нужен только для Zeebe (`cde-api-zeebe-secret`).
+
+| Контур | S3 (endpoint / access / secret) | RabbitMQ |
+| --- | --- | --- |
+| `ugok` | `documentations-s3-secret`: `endpoint` / `access_key` / `secret_key` | `documentations-rabbitmq-secret`: `host, port, username, password, vhost` |
+| `brusnika-prod` | `hasher-s3-secret`: `endpoint` / `access_key` / `secret_key` | `rabbitmq`: `host, port, username, password, vhost` |
+| `brusnika-stage` | `yc-s3`: `endpoint_url` / `key_id` / `access_key` | `rabbitmq`: как выше |
+| `wb` | `yc-s3`: `endpoint_url` / `key_id` / `access_key` | как в `wb/api.yaml`: host/port/vhost (`cde`) — литералы в envs, user/password — `hasher-rabbitmq-secret` (`user`, `password`) |
+
+Таблица ниже — для справки по `wb` (остальные контуры отличаются именами Secret'ов и ключей, см. таблицу выше):
+
+| Secret | Ключи | Переменные |
+| --- | --- | --- |
+| `public-key` | `key` | `CDE_API_PUBLIC_KEY` |
+| `postgres-secret` | `username`, `password` | `CDE_API_DATABASE__USER`, `CDE_API_DATABASE__PASSWORD` |
+| `yc-s3` | `endpoint_url`, `key_id`, `access_key` | `CDE_API_S3_ENDPOINT`, `CDE_API_S3_ACCESS_KEY`, `CDE_API_S3_SECRET_KEY` |
+| `cde-api-zeebe-secret` | `gateway_address`, `client_id`, `client_secret`, `auth_server_url` | `CDE_API_ZEEBE_GATEWAY_ADDRESS`, `CDE_API_ZEEBE_CLIENT_ID`, `CDE_API_ZEEBE_CLIENT_SECRET`, `CDE_API_ZEEBE_AUTH_SERVER_URL` |
+| `django-auth` | `key` | `CDE_API_USERS_AUTH_TOKEN` |
+| `hasher-rabbitmq-secret` | `user`, `password` | `CDE_API_RABBITMQ__USER`, `CDE_API_RABBITMQ__PASSWORD` |
+
+## Переменные окружения
+
+Колонка «Процессы»: api, create-upload, process-workflows, publish-documents, handle-error, copy, move. Если значение различается между процессами, показано значение первого процесса из списка.
+
+| Переменная | Значение (base) | Процессы |
+| --- | --- | --- |
+| `CDE_API_APP_NAME` | `cde-api` *(различается)* | все |
+| `CDE_API_BIMAPI_RETRY_COUNT` | `3` | api, process-workflows, copy, move |
+| `CDE_API_BIMAPI_RETRY_WAIT_MS` | `1000` | api |
+| `CDE_API_BIMAPI_TIMEOUT_MS` | `30000` | api, process-workflows, copy, move |
+| `CDE_API_BIMAPI_TIMEOUT_V2_MS` | `300000` | api, process-workflows, copy, move |
+| `CDE_API_BIMAPI_URL` | `http://backend-svc.bim.svc.cluster.local:80` | api, process-workflows, copy, move |
+| `CDE_API_BIMAPI_V2_URL` | `http://backend-svc.bim.svc.cluster.local:80` | api, process-workflows, copy, move |
+| `CDE_API_CONTAINER_REGISTRY` | `cr.yandex/crp3ccidau046kdj8g9q` | api, process-workflows, copy, move |
+| `CDE_API_CONVERTED_PDF_TO_S3` | `true` | api, process-workflows, copy, move |
+| `CDE_API_CONVERT_DWG_TO_GEOJSON` | `true` | api, process-workflows, copy, move |
+| `CDE_API_CONVERT_DXF_TO_GEOJSON` | `true` | api, process-workflows, copy, move |
+| `CDE_API_COPY_JOB_TIMEOUT_MINUTES` | `30` | copy |
+| `CDE_API_COPY_MAX_SYNC_WAIT_MS` | `300000` | api |
+| `CDE_API_COPY_S3_PARALLELISM` | `1` | copy |
+| `CDE_API_COPY_STEP_PARALLELISM` | `1` | copy |
+| `CDE_API_COPY_WORKER_JOBS` | `""` | copy |
+| `CDE_API_DATABASE_HEALTH_CHECK_PERIOD` | `30s` | все |
+| `CDE_API_DATABASE_MAX_CONN_IDLE_TIME` | `10m` | все |
+| `CDE_API_DATABASE_MAX_CONN_LIFETIME` | `30m` | все |
+| `CDE_API_DATABASE_OBSERVABILITY_ENABLE` | `true` | api |
+| `CDE_API_DATABASE_POOL_SIZE` | `10` *(различается)* | все |
+| `CDE_API_DATABASE__INSECURE_SKIP_TLS` | `false` | все |
+| `CDE_API_DATABASE__SSLMODE` | `disable` | все |
+| `CDE_API_DIAGNOSTICS_SLOW_OPERATION_THRESHOLD` | `30s` | api |
+| `CDE_API_DISK_BUCKET_NAMESPACE` | `documentations-prod` | api |
+| `CDE_API_DJANGO_HOST` | `http://backend-svc.django.svc.cluster.local:80` | api, process-workflows, copy, move |
+| `CDE_API_DOCUMENTATION_V2_URL` | `http://backend-api-svc.documentations.svc.cluster.local:80` | api, process-workflows, copy, move |
+| `CDE_API_EAV_HOST` | `http://backend-svc.eav.svc.cluster.local:80` | все |
+| `CDE_API_EAV_TIMEOUT_MS` | `10000` | api |
+| `CDE_API_ENVIRONMENT` | `production` | api, process-workflows, copy, move |
+| `CDE_API_FLOWS_URL` | `http://backend-svc.flows.svc.cluster.local:80` | все |
+| `CDE_API_HTTP_IDLE_TIMEOUT` | `120s` | api |
+| `CDE_API_HTTP_PORT` | `8000` | api |
+| `CDE_API_HTTP_READ_BUFFER_SIZE` | `96` | api |
+| `CDE_API_HTTP_READ_TIMEOUT` | `0s` | api |
+| `CDE_API_HTTP_WRITE_TIMEOUT` | `0s` | api |
+| `CDE_API_INTERNAL_URL` | `http://cde-api.documentations:8000` | api, process-workflows, copy, move |
+| `CDE_API_ISSUES_BASE_URL` | `http://issues-service.platform:8000` | copy |
+| `CDE_API_ISSUES_RETRY_COUNT` | `3` | copy |
+| `CDE_API_ISSUES_SYNC_ENABLED` | `false` | copy |
+| `CDE_API_ISSUES_TIMEOUT_MS` | `30000` | copy |
+| `CDE_API_LAST_MASTER_BIM` | `36311` | api, process-workflows, copy, move |
+| `CDE_API_LAST_SLAVE_1_BIM` | `94015` | api, process-workflows, copy, move |
+| `CDE_API_LAST_SLAVE_2_BIM` | `135771` | api, process-workflows, copy, move |
+| `CDE_API_LOG_LEVEL` | `debug` *(различается)* | все |
+| `CDE_API_MAILER_BASE_URL` | `http://mailer-service.mailer:8000` | все |
+| `CDE_API_MAILER_FROM_EMAIL` | `noreply@sarex.io` | все |
+| `CDE_API_MAILER_RETRY_COUNT` | `2` | api |
+| `CDE_API_MAILER_TIMEOUT_MS` | `10000` | api |
+| `CDE_API_MOVE_JOB_TIMEOUT_MINUTES` | `30` | move |
+| `CDE_API_MOVE_WORKER_JOBS` | `""` | move |
+| `CDE_API_OBSERVABILITY_ENABLE` | `true` | все |
+| `CDE_API_OBSERVABILITY_HOST` | `signoz-otel-collector-external.signoz.svc.cluster.local` | все |
+| `CDE_API_OBSERVABILITY_PORT` | `4317` | все |
+| `CDE_API_OBSERVABILITY_SERVICE_NAME` | `worker-s32d-create-upload` *(различается)* | create-upload, process-workflows, publish-documents, handle-error, copy, move |
+| `CDE_API_PUBLIC_LINK_HOST` | `https://document-link-srx.wb.ru` | api |
+| `CDE_API_RABBITMQ__HASHER_EXCHANGE` | `hash.compute` | api, copy, move |
+| `CDE_API_RABBITMQ__HASHER_ROUTING_KEY` | `hash.compute.normal` | api, copy, move |
+| `CDE_API_RABBITMQ__HOST` | `rabbitmq.rabbitmq.svc.cluster.local` | api, copy, move |
+| `CDE_API_RABBITMQ__MARKS_ROUTING_KEY` | `pdf_markings_input` | api, copy, move |
+| `CDE_API_RABBITMQ__PORT` | `5672` | api, copy, move |
+| `CDE_API_REDIS__DB` | `5` | api |
+| `CDE_API_REDIS__DEFAULT_TTL_MINUTES` | `10` | все |
+| `CDE_API_REDIS__DIAL_TIMEOUT_MS` | `5000` | все |
+| `CDE_API_REDIS__HOST` | `redis` | все |
+| `CDE_API_REDIS__MIN_IDLE_CONNS` | `2` *(различается)* | все |
+| `CDE_API_REDIS__PERMISSION_CACHE_ENABLED` | `false` | все |
+| `CDE_API_REDIS__POOL_SIZE` | `10` *(различается)* | все |
+| `CDE_API_REDIS__PORT` | `6379` | все |
+| `CDE_API_REDIS__READ_TIMEOUT_MS` | `3000` | все |
+| `CDE_API_REDIS__SSL` | `false` | все |
+| `CDE_API_REDIS__WRITE_TIMEOUT_MS` | `3000` | все |
+| `CDE_API_RESOURCES_BASE_URL` | `http://iams.iam.svc.cluster.local:8080` | api |
+| `CDE_API_RESOURCES_TIMEOUT` | `10s` | api |
+| `CDE_API_S32D_MAX_ARCHIVE_SIZE_BYTES` | `1099511627776` | api |
+| `CDE_API_S32D_MAX_FILES_COUNT` | `500` | api |
+| `CDE_API_S32D_READERAT_BLOCK_SIZE_MB` | `8` | create-upload |
+| `CDE_API_S32D_READERAT_CACHE_BLOCKS` | `8` | create-upload |
+| `CDE_API_S32D_WORKER_CREATE_UPLOAD_MAX_JOBS` | `2` | create-upload |
+| `CDE_API_S32D_WORKER_CREATE_UPLOAD_TIMEOUT_MIN` | `240` | create-upload |
+| `CDE_API_S32D_WORKER_HANDLE_ERROR_MAX_JOBS` | `4` | handle-error |
+| `CDE_API_S32D_WORKER_HANDLE_ERROR_TIMEOUT_MIN` | `10` | handle-error |
+| `CDE_API_S32D_WORKER_PROCESS_WORKFLOWS_MAX_JOBS` | `2` | process-workflows |
+| `CDE_API_S32D_WORKER_PROCESS_WORKFLOWS_TIMEOUT_MIN` | `480` | process-workflows |
+| `CDE_API_S32D_WORKER_PUBLISH_DOCUMENTS_MAX_JOBS` | `2` | publish-documents |
+| `CDE_API_S32D_WORKER_PUBLISH_DOCUMENTS_TIMEOUT_MIN` | `10` | publish-documents |
+| `CDE_API_S3_BUCKET_LOOKUP` | `auto` | все |
+| `CDE_API_S3_BUCKET_NAME` | `documentations-prod` | все |
+| `CDE_API_S3_CHECK_BUCKET` | `false` | все |
+| `CDE_API_S3_CONNECT_TIMEOUT` | `10s` | api |
+| `CDE_API_S3_INSECURE_SKIP_TLS` | `true` | все |
+| `CDE_API_S3_MAX_PART_SIZE` | `524288000` | все |
+| `CDE_API_S3_MAX_SINGLE_UPLOAD_SIZE` | `5368709120` | все |
+| `CDE_API_S3_TLS_HANDSHAKE_TIMEOUT` | `10s` | api |
+| `CDE_API_S3_UPLOAD_STALL_TIMEOUT` | `10m` | все |
+| `CDE_API_S3_USE_SSL` | `true` | все |
+| `CDE_API_SENTRY_DSN` | `""` | все |
+| `CDE_API_SENTRY_ENVIRONMENT` | `""` | все |
+| `CDE_API_SYSTEMLOG_BASE_URL` | `http://backend-svc.system-log.svc.cluster.local:80` | api, publish-documents, copy, move |
+| `CDE_API_SYSTEMLOG_TIMEOUT_MS` | `10000` | api, publish-documents, copy, move |
+| `CDE_API_TRANSMITTALS_URL` | `http://transmittal-service.transmittal.svc.cluster.local:80` | все |
+| `CDE_API_USERS_BASE_URL` | `http://backend-svc.django.svc.cluster.local:80` | api |
+| `CDE_API_USERS_ORIGINATOR` | `docs_prod` | api |
+| `CDE_API_USERS_TIMEOUT_MS` | `10000` | api |
+| `CDE_API_USE_BIMV1_FOR_BIMV2` | `true` | api, process-workflows, copy, move |
+| `CDE_API_USE_BIM_INSERTER` | `true` | api, process-workflows, copy, move |
+| `CDE_API_USE_LEGACY_BIM_FLOW` | `0` | api, process-workflows, copy, move |
+| `CDE_API_WORKFLOWS_CONFIG_FILEPATH` | `/etc/app/tasks_execution_config.json` | все |
+| `CDE_API_WORKFLOWS_IMAGES_VERSION` | `master` | api, process-workflows, copy, move |
+| `CDE_API_WORKFLOW_BASE_URL` | `http://backend-svc.processing.svc.cluster.local:80` | api, process-workflows, copy, move |
+| `CDE_API_WORKFLOW_RETRY_COUNT` | `3` | api, process-workflows, copy, move |
+| `CDE_API_WORKFLOW_RETRY_WAIT_MS` | `500` | api |
+| `CDE_API_WORKFLOW_TIMEOUT_MS` | `30000` | api, process-workflows, copy, move |
+| `CDE_API_WORKSPACE_BASE_URL` | `http://backend-svc.workspaces.svc.cluster.local:80` | api, publish-documents, copy, move |
+| `CDE_API_WORKSPACE_RETRY_COUNT` | `3` | api, publish-documents, copy, move |
+| `CDE_API_WORKSPACE_TIMEOUT_MS` | `10000` | api, publish-documents, copy, move |
+| `CDE_API_ZEEBE_USE_PLAINTEXT` | `true` | все |
+
+## Переменные из k8s-секретов (ugok, brusnika-*, wb)
+
+| Переменная | Secret / ключ | Процессы |
+| --- | --- | --- |
+| `CDE_API_DATABASE__PASSWORD` | `postgres-secret` / `password` | все |
+| `CDE_API_DATABASE__USER` | `postgres-secret` / `username` | все |
+| `CDE_API_PUBLIC_KEY` | `public-key` / `key` | api |
+| `CDE_API_RABBITMQ__PASSWORD` | `hasher-rabbitmq-secret` / `password` | api, copy, move |
+| `CDE_API_RABBITMQ__USER` | `hasher-rabbitmq-secret` / `user` | api, copy, move |
+| `CDE_API_S3_ACCESS_KEY` | `yc-s3` / `key_id` | все |
+| `CDE_API_S3_ENDPOINT` | `yc-s3` / `endpoint_url` | все |
+| `CDE_API_S3_SECRET_KEY` | `yc-s3` / `access_key` | все |
+| `CDE_API_USERS_AUTH_TOKEN` | `django-auth` / `key` | api |
+| `CDE_API_ZEEBE_AUTH_SERVER_URL` | `cde-api-zeebe-secret` / `auth_server_url` | все |
+| `CDE_API_ZEEBE_CLIENT_ID` | `cde-api-zeebe-secret` / `client_id` | все |
+| `CDE_API_ZEEBE_CLIENT_SECRET` | `cde-api-zeebe-secret` / `client_secret` | все |
+| `CDE_API_ZEEBE_GATEWAY_ADDRESS` | `cde-api-zeebe-secret` / `gateway_address` | все |
+
+## Различия по контурам
+
+От контура к контуру меняются URL зависимостей, внешний хост публичных ссылок и источник образов:
+
+| Контур | Тип оверлея | Что отличается |
+| --- | --- | --- |
+| `sarex-contour`, `yc-k8s-test` | наследуют `base` | ничего (значения `base`) |
+| `d8-ugmk-prod`, `uralkal`, `vad` | патч `cde-api.yaml` поверх `base` | `CDE_API_PUBLIC_LINK_HOST` |
+| `ugok` | полная копия HelmRelease, chart 0.1.9 | URL зависимостей (порты 8000/8080), образы из `10.4.10.187:80/library`, pull-secret `dockerhub` |
+| `brusnika-prod`, `brusnika-stage` | полная копия, chart 0.1.7 | URL зависимостей; stage — профиль stage (`CDE_API_ENVIRONMENT=stage`, bucket `documentations-stage`) |
+| `wb` | полная копия, chart 0.1.7 | URL зависимостей, `CDE_API_PUBLIC_LINK_HOST=https://document-link-srx.wb.ru` |
+
+Правка `base` на полные копии (ugok, brusnika-*, wb) не влияет.
+
+## Допущения и что нужно проверить
+
+- **Теги образов** (`prod_c9bc246`; у brusnika-stage `stage_c9bc246`, у ugok `ugok_c9bc246`) — placeholder на основе HEAD ветки develop cde-api; заменить на фактически собранные CI.
+- `CDE_API_DJANGO_HOST` и `CDE_API_USERS_BASE_URL` в источнике — внешний хост (`https://lk.sarex.io`), здесь заменены внутренним адресом Django контура. Если cde-api использует их для внешних ссылок — вернуть внешний хост.
+- `CDE_API_S3_BUCKET_NAME` для prod-контуров выставлен в `documentations-prod` по аналогии с `CDE_API_DISK_BUCKET_NAMESPACE`; в источнике задан только stage-бакет.
+- `CDE_API_EAV_HOST`, `CDE_API_TRANSMITTALS_URL` выбраны по конвенции остальных приложений контура (`backend-svc.eav`, `eav-service.eav`, `transmittal-service.transmittal`); сверить с `inventory.yaml`.
+- Sentry отключён (`CDE_API_SENTRY_DSN=""`): DSN источника ведёт во внешний SaaS.
+- Реплики воркеров `create-upload` и `process-workflows` — `1` (в prod-конфиге cde-api — `0`).
+- Порт: в источнике `deployment.port=8080` при `CDE_API_HTTP_PORT=8000` и `service.targetPort=8000`; здесь везде 8000.
+- Общая с documentations БД: cde-api применяет свои миграции в той же базе — проверить отсутствие конфликтов имён таблиц/схемы и версий миграций (отдельная схема или префикс при необходимости).
+- Общий Valkey без пароля и TLS (в источнике cde-api — управляемый Valkey с TLS и логином): подтвердить, что cde-api работает без `CDE_API_REDIS__USERNAME/PASSWORD`. DB 5 совпадает с `VALKEY_DB=5` у documentations-api (в stage так же).
+- `secrets/data/apps/cde-api/zeebe` в Vault нужно создать; в k8s-контурах нужен только Secret `cde-api-zeebe-secret`; S3 и RabbitMQ используют существующие Secret'ы hasher / pdf-markings / api (таблица выше). Если в Secret'ах S3 другие права или бакет, чем нужны cde-api, заменить на отдельный.
+- Значения секретов из Vault подставляются в окружение через `. file` без кавычек — как у `documentations-api`; пароли со спецсимволами shell ломают этот способ.
+- Образы cde-api нужно пересобрать с добавленным busybox (проверка сборки Docker не выполнялась); без этого поды в vault-контурах не стартуют.
diff --git a/apps/documentations/cde-api.ENDPOINTS.md b/apps/documentations/cde-api.ENDPOINTS.md
new file mode 100644
index 0000000..1db478c
--- /dev/null
+++ b/apps/documentations/cde-api.ENDPOINTS.md
@@ -0,0 +1,42 @@
+# Внешние зависимости cde-api и воркеров
+
+Документ перечисляет сервисы, к которым обращаются `cde-api` и воркеры, по их URL-переменным окружения (`apps/documentations/base/cde-api*.yaml`). Это карта зависимостей «кто кого зовёт»; конкретные пути запросов определяются клиентами в коде `cde-api` и здесь не разбираются.
+
+Значения в таблице — из `base`. В контурах с полными копиями (`ugok`, `brusnika-*`, `wb`) имена сервисов и порты другие — см. `*/cde-api.yaml` и раздел «Различия по контурам» в [cde-api.CONFIGURATION.md](cde-api.CONFIGURATION.md).
+
+## HTTP-зависимости
+
+| Переменная | Значение (base) | Сервис | Процессы |
+| --- | --- | --- | --- |
+| `CDE_API_RESOURCES_BASE_URL` | `http://iams.iam.svc.cluster.local:8080` | resources / iams | api |
+| `CDE_API_WORKFLOW_BASE_URL` | `http://backend-svc.processing.svc.cluster.local:80` | workflows (processing) | api, process-workflows, copy, move |
+| `CDE_API_BIMAPI_URL` | `http://backend-svc.bim.svc.cluster.local:80` | bim (v1) | api, process-workflows, copy, move |
+| `CDE_API_BIMAPI_V2_URL` | `http://backend-svc.bim.svc.cluster.local:80` | bim (v2) | api, process-workflows, copy, move |
+| `CDE_API_WORKSPACE_BASE_URL` | `http://backend-svc.workspaces.svc.cluster.local:80` | workspaces | api, publish-documents, copy, move |
+| `CDE_API_SYSTEMLOG_BASE_URL` | `http://backend-svc.system-log.svc.cluster.local:80` | system-log | api, publish-documents, copy, move |
+| `CDE_API_EAV_HOST` | `http://backend-svc.eav.svc.cluster.local:80` | eav | все |
+| `CDE_API_DOCUMENTATION_V2_URL` | `http://backend-api-svc.documentations.svc.cluster.local:80` | documentations-api | api, process-workflows, copy, move |
+| `CDE_API_INTERNAL_URL` | `http://cde-api.documentations:8000` | сам cde-api (service `cde-api`) | api, process-workflows, copy, move |
+| `CDE_API_FLOWS_URL` | `http://backend-svc.flows.svc.cluster.local:80` | flows | api, create-upload, process-workflows, publish-documents, handle-error, copy, move |
+| `CDE_API_TRANSMITTALS_URL` | `http://transmittal-service.transmittal.svc.cluster.local:80` | transmittal | api, create-upload, process-workflows, publish-documents, handle-error, copy, move |
+| `CDE_API_MAILER_BASE_URL` | `http://mailer-service.mailer:8000` | mailer | api, create-upload, process-workflows, publish-documents, handle-error, copy, move |
+| `CDE_API_DJANGO_HOST`, `CDE_API_USERS_BASE_URL` | `http://backend-svc.django.svc.cluster.local:80` | django (пользователи, `CDE_API_USERS_AUTH_TOKEN` из секрета `django-auth`) | api, process-workflows, copy, move; `CDE_API_USERS_BASE_URL` — только api |
+| `CDE_API_PUBLIC_LINK_HOST` | зависит от контура | внешний хост document-link (используется для формирования ссылок) | api |
+
+Точный список процессов для каждой переменной — в [cde-api.CONFIGURATION.md](cde-api.CONFIGURATION.md).
+
+## Инфраструктурные зависимости
+
+| Зависимость | Откуда конфигурируется | Для чего |
+| --- | --- | --- |
+| PostgreSQL | Vault `secrets/data/apps/documentations/postgres` (k8s-контуры: хост/БД как у documentations-api + его секрет), `sslmode=disable` | **та же БД, что у documentations-api** |
+| Valkey/Redis | `CDE_API_REDIS__HOST=redis`, `PORT=6379`, `DB=5`, без TLS и пароля | общий `redis` из ns documentations: кэш, курсоры, блокировки |
+| S3 | Vault `secrets/data/minio/apps/documentations` (k8s-контуры: существующие Secret'ы контура, см. CONFIGURATION), бакет `CDE_API_S3_BUCKET_NAME` | хранение и multipart-загрузка файлов дисков |
+| Zeebe (Camunda) | Vault `secrets/data/apps/cde-api/zeebe` (k8s-контуры: `cde-api-zeebe-secret`) | S32D-воркеры берут задачи из Zeebe |
+| RabbitMQ | Vault `secrets/data/rabbitmq/apps/cde` (k8s-контуры: существующие Secret'ы контура), хост `rabbitmq.rabbitmq.svc.cluster.local:5672`; ключи `pdf_markings_input`, `hash.compute.normal`, обмен `hash.compute` | постановка задач на штампы (pdf-markings) и хэширование (hasher) |
+| SigNoz OTLP | `CDE_API_OBSERVABILITY_HOST:4317` (`signoz-otel-collector-external.signoz`) | трейсы и метрики |
+| Контейнерный реестр / workflows | `CDE_API_CONTAINER_REGISTRY`, `CDE_API_WORKFLOWS_IMAGES_VERSION=master`, файл `tasks_execution_config.json` | запуск задач обработки (k8s-jobs) |
+
+## Входящий трафик
+
+Service `cde-api:8000` (ns `documentations`) используется внутри кластера (в том числе самим cde-api через `CDE_API_INTERNAL_URL`). Маршруты в `infrastructure/istio-config/*` на этот сервис **не заведены**: существующие `cde-api-virt-service` относятся к легаси-сервису cde (`cde-svc.cde`) и не затрагиваются. Входящий контракт — [cde-api.openapi.yaml](cde-api.openapi.yaml) (копия `cde-api/docs/openapi/swagger.yaml`).
diff --git a/apps/documentations/cde-api.env.example b/apps/documentations/cde-api.env.example
new file mode 100644
index 0000000..0472444
--- /dev/null
+++ b/apps/documentations/cde-api.env.example
@@ -0,0 +1,118 @@
+# =============================================================================
+# cde-api и воркеры (cde-api-worker-*) — пример переменных окружения
+# =============================================================================
+# Значения — из apps/documentations/base/cde-api.yaml; секреты оставлены пустыми.
+# Префикс CDE_API_, вложенность через "__". Полный список по процессам —
+# cde-api.CONFIGURATION.md.
+
+CDE_API_RESOURCES_BASE_URL=http://iams.iam.svc.cluster.local:8080
+CDE_API_RESOURCES_TIMEOUT=10s
+CDE_API_APP_NAME=cde-api
+CDE_API_SENTRY_DSN=
+CDE_API_SENTRY_ENVIRONMENT=
+CDE_API_LOG_LEVEL=debug
+CDE_API_HTTP_PORT=8000
+CDE_API_HTTP_READ_TIMEOUT=0s
+CDE_API_HTTP_WRITE_TIMEOUT=0s
+CDE_API_HTTP_IDLE_TIMEOUT=120s
+CDE_API_HTTP_READ_BUFFER_SIZE=96
+CDE_API_OBSERVABILITY_ENABLE=true
+CDE_API_OBSERVABILITY_HOST=signoz-otel-collector-external.signoz.svc.cluster.local
+CDE_API_OBSERVABILITY_PORT=4317
+CDE_API_S3_MAX_SINGLE_UPLOAD_SIZE=5368709120
+CDE_API_S3_MAX_PART_SIZE=524288000
+CDE_API_S3_UPLOAD_STALL_TIMEOUT=10m
+CDE_API_PUBLIC_LINK_HOST=https://document-link-srx.wb.ru
+CDE_API_WORKFLOW_BASE_URL=http://backend-svc.processing.svc.cluster.local:80
+CDE_API_WORKFLOW_RETRY_COUNT=3
+CDE_API_WORKFLOW_RETRY_WAIT_MS=500
+CDE_API_WORKFLOW_TIMEOUT_MS=30000
+CDE_API_BIMAPI_URL=http://backend-svc.bim.svc.cluster.local:80
+CDE_API_BIMAPI_V2_URL=http://backend-svc.bim.svc.cluster.local:80
+CDE_API_BIMAPI_RETRY_COUNT=3
+CDE_API_BIMAPI_RETRY_WAIT_MS=1000
+CDE_API_BIMAPI_TIMEOUT_MS=30000
+CDE_API_BIMAPI_TIMEOUT_V2_MS=300000
+CDE_API_WORKSPACE_BASE_URL=http://backend-svc.workspaces.svc.cluster.local:80
+CDE_API_WORKSPACE_RETRY_COUNT=3
+CDE_API_WORKSPACE_TIMEOUT_MS=10000
+CDE_API_SYSTEMLOG_BASE_URL=http://backend-svc.system-log.svc.cluster.local:80
+CDE_API_SYSTEMLOG_TIMEOUT_MS=10000
+CDE_API_CONTAINER_REGISTRY=cr.yandex/crp3ccidau046kdj8g9q
+CDE_API_WORKFLOWS_IMAGES_VERSION=master
+CDE_API_DJANGO_HOST=http://backend-svc.django.svc.cluster.local:80
+CDE_API_ENVIRONMENT=production
+CDE_API_CONVERTED_PDF_TO_S3=true
+CDE_API_CONVERT_DXF_TO_GEOJSON=true
+CDE_API_CONVERT_DWG_TO_GEOJSON=true
+CDE_API_USE_BIMV1_FOR_BIMV2=true
+CDE_API_EAV_HOST=http://backend-svc.eav.svc.cluster.local:80
+CDE_API_EAV_TIMEOUT_MS=10000
+CDE_API_DOCUMENTATION_V2_URL=http://backend-api-svc.documentations.svc.cluster.local:80
+CDE_API_INTERNAL_URL=http://cde-api.documentations:8000
+CDE_API_COPY_MAX_SYNC_WAIT_MS=300000
+CDE_API_LAST_MASTER_BIM=36311
+CDE_API_LAST_SLAVE_1_BIM=94015
+CDE_API_LAST_SLAVE_2_BIM=135771
+CDE_API_USE_BIM_INSERTER=true
+CDE_API_USE_LEGACY_BIM_FLOW=0
+CDE_API_DATABASE_MAX_CONN_LIFETIME=30m
+CDE_API_DATABASE_MAX_CONN_IDLE_TIME=10m
+CDE_API_DATABASE_HEALTH_CHECK_PERIOD=30s
+CDE_API_DATABASE_POOL_SIZE=10
+CDE_API_DIAGNOSTICS_SLOW_OPERATION_THRESHOLD=30s
+CDE_API_DATABASE__SSLMODE=disable
+CDE_API_DATABASE__INSECURE_SKIP_TLS=false
+CDE_API_DATABASE_OBSERVABILITY_ENABLE=true
+CDE_API_REDIS__DB=5
+CDE_API_REDIS__SSL=false
+CDE_API_REDIS__POOL_SIZE=10
+CDE_API_REDIS__MIN_IDLE_CONNS=2
+CDE_API_REDIS__DIAL_TIMEOUT_MS=5000
+CDE_API_REDIS__READ_TIMEOUT_MS=3000
+CDE_API_REDIS__WRITE_TIMEOUT_MS=3000
+CDE_API_REDIS__DEFAULT_TTL_MINUTES=10
+CDE_API_REDIS__PERMISSION_CACHE_ENABLED=false
+CDE_API_S3_BUCKET_NAME=documentations-prod
+CDE_API_S3_USE_SSL=true
+CDE_API_S3_BUCKET_LOOKUP=auto
+CDE_API_S3_INSECURE_SKIP_TLS=true
+CDE_API_S3_CHECK_BUCKET=false
+CDE_API_S3_CONNECT_TIMEOUT=10s
+CDE_API_S3_TLS_HANDSHAKE_TIMEOUT=10s
+CDE_API_S32D_MAX_ARCHIVE_SIZE_BYTES=1099511627776
+CDE_API_S32D_MAX_FILES_COUNT=500
+CDE_API_ZEEBE_USE_PLAINTEXT=true
+CDE_API_USERS_BASE_URL=http://backend-svc.django.svc.cluster.local:80
+CDE_API_DISK_BUCKET_NAMESPACE=documentations-prod
+CDE_API_USERS_ORIGINATOR=docs_prod
+CDE_API_USERS_TIMEOUT_MS=10000
+CDE_API_MAILER_BASE_URL=http://mailer-service.mailer:8000
+CDE_API_MAILER_FROM_EMAIL=noreply@sarex.io
+CDE_API_MAILER_RETRY_COUNT=2
+CDE_API_MAILER_TIMEOUT_MS=10000
+CDE_API_FLOWS_URL=http://backend-svc.flows.svc.cluster.local:80
+CDE_API_TRANSMITTALS_URL=http://transmittal-service.transmittal.svc.cluster.local:80
+CDE_API_WORKFLOWS_CONFIG_FILEPATH=/etc/app/tasks_execution_config.json
+CDE_API_RABBITMQ__MARKS_ROUTING_KEY=pdf_markings_input
+CDE_API_RABBITMQ__HASHER_ROUTING_KEY=hash.compute.normal
+CDE_API_RABBITMQ__HASHER_EXCHANGE=hash.compute
+CDE_API_REDIS__HOST=redis
+CDE_API_REDIS__PORT=6379
+CDE_API_RABBITMQ__HOST=rabbitmq.rabbitmq.svc.cluster.local
+CDE_API_RABBITMQ__PORT=5672
+
+# --- секреты (k8s Secret) ---
+CDE_API_DATABASE__PASSWORD=
+CDE_API_DATABASE__USER=
+CDE_API_PUBLIC_KEY=
+CDE_API_RABBITMQ__PASSWORD=
+CDE_API_RABBITMQ__USER=
+CDE_API_S3_ACCESS_KEY=
+CDE_API_S3_ENDPOINT=
+CDE_API_S3_SECRET_KEY=
+CDE_API_USERS_AUTH_TOKEN=
+CDE_API_ZEEBE_AUTH_SERVER_URL=
+CDE_API_ZEEBE_CLIENT_ID=
+CDE_API_ZEEBE_CLIENT_SECRET=
+CDE_API_ZEEBE_GATEWAY_ADDRESS=
diff --git a/apps/documentations/cde-api.openapi.yaml b/apps/documentations/cde-api.openapi.yaml
new file mode 100644
index 0000000..1ee8a8f
--- /dev/null
+++ b/apps/documentations/cde-api.openapi.yaml
@@ -0,0 +1,8341 @@
+definitions:
+ apperrors.APIError400:
+ properties:
+ code:
+ example: CDE-0004
+ type: string
+ detail:
+ example: The request sent was invalid or malformed. Please review the request
+ parameters or body and try again.
+ type: string
+ type:
+ example: bad_request
+ type: string
+ type: object
+ apperrors.APIError401:
+ properties:
+ code:
+ example: CDE-0002
+ type: string
+ detail:
+ example: Authentication is required or has failed. Please log in or provide
+ valid credentials.
+ type: string
+ type:
+ example: unauthorized
+ type: string
+ type: object
+ apperrors.APIError403:
+ properties:
+ code:
+ example: CDE-0003
+ type: string
+ detail:
+ example: You do not have the necessary permissions to perform this action
+ or access this resource.
+ type: string
+ type:
+ example: permission_denied
+ type: string
+ type: object
+ apperrors.APIError404:
+ properties:
+ code:
+ example: CDE-0001
+ type: string
+ detail:
+ example: The requested resource could not be found. Please verify the URL
+ or identifier and try again.
+ type: string
+ type:
+ example: not_found
+ type: string
+ type: object
+ apperrors.APIError409:
+ properties:
+ code:
+ example: CDE-0008
+ type: string
+ detail:
+ example: A resource with the same identifier already exists. Please use a
+ different value or update the existing resource.
+ type: string
+ type:
+ example: conflict
+ type: string
+ type: object
+ apperrors.APIError422:
+ properties:
+ code:
+ example: CDE-0005
+ type: string
+ detail:
+ example: One or more provided input values failed validation. Please review
+ the data and ensure it meets the required format or constraints.
+ type: string
+ type:
+ example: validation_error
+ type: string
+ validation_errors:
+ additionalProperties:
+ items:
+ type: string
+ type: array
+ type: object
+ type: object
+ apperrors.APIError502:
+ properties:
+ code:
+ example: CDE-0006
+ type: string
+ detail:
+ example: An external service encountered an error. This is usually a temporary
+ issue, please try again later.
+ type: string
+ type:
+ example: external_service_error
+ type: string
+ type: object
+ attribute.ReplaceAttributeInput:
+ properties:
+ asset_id:
+ type: string
+ x-nullable: true
+ asset_level_id:
+ type: string
+ x-nullable: true
+ id:
+ type: integer
+ values:
+ items: {}
+ type: array
+ type: object
+ attribute.ReplaceRequest:
+ properties:
+ attributes:
+ description: Полный желаемый набор атрибутов. Отсутствующие атрибуты и атрибуты
+ с пустым values удаляются из активного набора; пустой список очищает все
+ атрибуты документа.
+ items:
+ $ref: '#/definitions/attribute.ReplaceAttributeInput'
+ type: array
+ type: object
+ binding.AuthorOutput:
+ properties:
+ first_name:
+ type: string
+ id:
+ type: integer
+ last_name:
+ type: string
+ type: object
+ binding.BindingItemOutput:
+ properties:
+ author:
+ $ref: '#/definitions/binding.AuthorOutput'
+ bundle_conversion_status:
+ type: string
+ changelog:
+ $ref: '#/definitions/binding.ChangelogOutput'
+ comment:
+ type: string
+ created_at:
+ type: string
+ deleted_at:
+ type: string
+ disk_id:
+ type: string
+ has_digital_signature:
+ type: boolean
+ has_qr_code:
+ type: boolean
+ has_stamp:
+ type: boolean
+ id:
+ type: string
+ is_canceled_qr:
+ type: boolean
+ is_document_allowed:
+ type: boolean
+ name:
+ type: string
+ path:
+ type: string
+ pretty_path:
+ type: string
+ reviews:
+ items:
+ $ref: '#/definitions/binding.ReviewOutput'
+ type: array
+ size:
+ type: integer
+ transmittals:
+ items:
+ $ref: '#/definitions/binding.TransmittalOutput'
+ type: array
+ type:
+ type: string
+ version:
+ type: integer
+ workflow_id:
+ type: string
+ type: object
+ binding.ChangelogOutput:
+ properties:
+ description:
+ type: string
+ "no":
+ type: string
+ type: object
+ binding.GetBindingsOutput:
+ properties:
+ binding_id:
+ type: string
+ items:
+ items:
+ $ref: '#/definitions/binding.BindingItemOutput'
+ type: array
+ type: object
+ binding.ReviewOutput:
+ properties:
+ review:
+ type: string
+ review_id:
+ type: integer
+ review_status:
+ type: string
+ status:
+ $ref: '#/definitions/binding.ReviewStatusOutput'
+ type: object
+ binding.ReviewStatusOutput:
+ properties:
+ id:
+ type: integer
+ key:
+ type: string
+ value:
+ type: string
+ type: object
+ binding.TransmittalOutput:
+ properties:
+ created_at:
+ type: string
+ id:
+ type: string
+ name:
+ type: string
+ status:
+ $ref: '#/definitions/binding.TransmittalStatusOutput'
+ type: object
+ binding.TransmittalStatusOutput:
+ properties:
+ id:
+ type: integer
+ name:
+ type: string
+ slug:
+ type: string
+ type: object
+ bundle.AddWorkflowRequest:
+ properties:
+ workflow_id:
+ type: string
+ required:
+ - workflow_id
+ type: object
+ bundle.ChangeAuthorRequest:
+ properties:
+ user_id:
+ type: integer
+ required:
+ - user_id
+ type: object
+ bundle.ChangelogRequest:
+ properties:
+ description:
+ type: string
+ "no":
+ type: string
+ type: object
+ bundle.CompleteUploadResponse:
+ properties:
+ id:
+ type: string
+ upload_status:
+ type: string
+ type: object
+ bundle.CreateRequest:
+ properties:
+ changelog:
+ $ref: '#/definitions/bundle.ChangelogRequest'
+ comment:
+ type: string
+ date:
+ type: string
+ disk_id:
+ type: string
+ keys:
+ items:
+ $ref: '#/definitions/bundle.DataSourceKeyRequest'
+ minItems: 1
+ type: array
+ type:
+ type: string
+ required:
+ - disk_id
+ - keys
+ - type
+ type: object
+ bundle.CreateResponse:
+ properties:
+ created_at:
+ type: string
+ data_sources:
+ items:
+ $ref: '#/definitions/bundle.DataSourceResponse'
+ type: array
+ id:
+ type: string
+ type:
+ type: string
+ type: object
+ bundle.DataSourceKeyRequest:
+ properties:
+ key:
+ type: string
+ name:
+ maxLength: 250
+ type: string
+ type:
+ enum:
+ - folder
+ - file
+ type: string
+ required:
+ - key
+ - name
+ - type
+ type: object
+ bundle.DataSourceResponse:
+ properties:
+ file_name:
+ type: string
+ id:
+ type: string
+ key:
+ type: string
+ type:
+ type: string
+ type: object
+ bundle.EnsureDataSourceRequest:
+ properties:
+ name:
+ type: string
+ type:
+ enum:
+ - file
+ - folder
+ type: string
+ required:
+ - type
+ type: object
+ bundle.EnsureDataSourceResponse:
+ properties:
+ created:
+ type: boolean
+ data_source_id:
+ type: string
+ type: object
+ bundle.PresignResponse:
+ properties:
+ bundle_id:
+ type: string
+ hash:
+ type: string
+ type: object
+ bundle.RestartContext:
+ properties:
+ attributes:
+ additionalProperties: {}
+ type: object
+ bucketName:
+ type: string
+ companyID:
+ type: integer
+ documentID:
+ type: integer
+ pdfDataSourceID:
+ type: string
+ tilesDataSourceID:
+ type: string
+ workflowID:
+ description: external workflows-service workflow id
+ type: string
+ workflowRecordID:
+ description: our workflow row id (workflows_uid param)
+ type: string
+ type: object
+ bundle.RestartResponse:
+ properties:
+ workflow_id:
+ type: string
+ type: object
+ bundle.UpdateAttributesOutput:
+ properties:
+ bundleID:
+ type: string
+ restart:
+ allOf:
+ - $ref: '#/definitions/bundle.RestartContext'
+ description: |-
+ Restart is non-nil when the type re-runs georeferencing and a workflow
+ exists: the service performs the restart (network) out of the transaction.
+ type:
+ type: string
+ workflowStatus:
+ type: string
+ type: object
+ bundle.UpdateAttributesRequest:
+ properties:
+ attributes:
+ additionalProperties: {}
+ type: object
+ type: object
+ bundle.UpdateCommentRequest:
+ properties:
+ comment:
+ $ref: '#/definitions/optional.Value-string'
+ type: object
+ bundle.markBundleRequest:
+ properties:
+ clean_bundle_id:
+ type: string
+ qrs:
+ items:
+ $ref: '#/definitions/bundle.markBundleRequestQR'
+ maxItems: 1
+ type: array
+ signatures:
+ items:
+ $ref: '#/definitions/bundle.markBundleRequestSignature'
+ type: array
+ stamps:
+ items:
+ $ref: '#/definitions/bundle.markBundleRequestStamp'
+ type: array
+ use_existing_version:
+ type: boolean
+ type: object
+ bundle.markBundleRequestQR:
+ properties:
+ pages:
+ items:
+ type: integer
+ type: array
+ positioning_type:
+ type: integer
+ timestamp:
+ type: string
+ x_coordinate:
+ minimum: 0
+ type: integer
+ y_coordinate:
+ minimum: 0
+ type: integer
+ required:
+ - timestamp
+ type: object
+ bundle.markBundleRequestSignature:
+ properties:
+ company_name:
+ maxLength: 255
+ type: string
+ header:
+ maxLength: 255
+ type: string
+ mrpa_id:
+ type: string
+ owner:
+ maxLength: 255
+ type: string
+ pages:
+ items:
+ type: integer
+ type: array
+ positioning_type:
+ type: integer
+ signature:
+ type: string
+ thumbprint:
+ maxLength: 255
+ type: string
+ valid_from:
+ type: string
+ valid_to:
+ type: string
+ x_coordinate:
+ minimum: 0
+ type: integer
+ y_coordinate:
+ minimum: 0
+ type: integer
+ required:
+ - company_name
+ - header
+ - owner
+ - signature
+ - thumbprint
+ - valid_from
+ - valid_to
+ type: object
+ bundle.markBundleRequestStamp:
+ properties:
+ company_name:
+ maxLength: 255
+ type: string
+ header:
+ maxLength: 255
+ type: string
+ pages:
+ items:
+ type: integer
+ type: array
+ positioning_type:
+ type: integer
+ role_name:
+ maxLength: 255
+ type: string
+ timestamp:
+ type: string
+ user_full_name:
+ maxLength: 255
+ type: string
+ x_coordinate:
+ minimum: 0
+ type: integer
+ y_coordinate:
+ minimum: 0
+ type: integer
+ required:
+ - company_name
+ - header
+ - role_name
+ - timestamp
+ - user_full_name
+ type: object
+ bundle.markBundleResponse:
+ properties:
+ bundle_id:
+ type: string
+ type: object
+ bundle.markExternalBundleRequest:
+ properties:
+ clean_bundle_id:
+ type: string
+ created_by:
+ type: integer
+ qrs:
+ items:
+ $ref: '#/definitions/bundle.markBundleRequestQR'
+ maxItems: 1
+ type: array
+ signatures:
+ items:
+ $ref: '#/definitions/bundle.markBundleRequestSignature'
+ type: array
+ stamps:
+ items:
+ $ref: '#/definitions/bundle.markBundleRequestStamp'
+ type: array
+ use_existing_version:
+ type: boolean
+ type: object
+ changelog.CreateRequest:
+ properties:
+ description:
+ type: string
+ "no":
+ type: string
+ type: object
+ changelog.Response:
+ properties:
+ author:
+ $ref: '#/definitions/document.AuthorOutput'
+ bundle_id:
+ type: string
+ created_at:
+ type: string
+ description:
+ type: string
+ "no":
+ type: string
+ updated_at:
+ type: string
+ type: object
+ changelog.UpdateRequest:
+ properties:
+ description:
+ description: Описание изменений; отсутствие поля сохраняет значение, null
+ очищает его.
+ type: string
+ x-nullable: true
+ "no":
+ type: string
+ type: object
+ changelog.UpdateResponse:
+ properties:
+ bundle_id:
+ type: string
+ created_at:
+ type: string
+ description:
+ type: string
+ "no":
+ type: string
+ updated_at:
+ type: string
+ type: object
+ copy.AddVersionOptions:
+ properties:
+ copy_issues:
+ description: Копирование замечаний не поддерживается; значение поля игнорируется.
+ type: boolean
+ publish:
+ type: boolean
+ set_copied_from:
+ description: Сохранять связь копии с исходной версией; по умолчанию true.
+ type: boolean
+ type: object
+ copy.FlatOptions:
+ properties:
+ copy_attributes:
+ type: boolean
+ copy_issues:
+ description: Копирование замечаний не поддерживается; значение поля игнорируется.
+ type: boolean
+ publish:
+ type: boolean
+ set_copied_from:
+ type: boolean
+ type: object
+ copy.LegacyBundle:
+ properties:
+ attributes:
+ additionalProperties: {}
+ type: object
+ bim_id:
+ type: integer
+ bundle_copied_from:
+ type: string
+ comment:
+ type: string
+ created_at:
+ type: string
+ data_sources:
+ items:
+ $ref: '#/definitions/copy.LegacyDataSource'
+ type: array
+ date:
+ type: string
+ document_id:
+ type: integer
+ has_digital_signature:
+ type: boolean
+ has_qr_code:
+ type: boolean
+ has_stamp:
+ type: boolean
+ id:
+ type: string
+ published_at:
+ type: string
+ size:
+ type: integer
+ type:
+ type: string
+ upload_status:
+ type: string
+ workflow_status:
+ type: string
+ type: object
+ copy.LegacyBundleCopyRequest:
+ properties:
+ document_name:
+ type: string
+ to_disk_document_id:
+ type: string
+ to_parent_document_id:
+ type: integer
+ use_source_bundle_as_copied_from:
+ type: boolean
+ type: object
+ copy.LegacyDataSource:
+ properties:
+ file_name:
+ type: string
+ format:
+ type: string
+ id:
+ type: string
+ key:
+ type: string
+ size:
+ type: integer
+ type:
+ type: string
+ type: object
+ copy.LegacyDocument:
+ properties:
+ bundles:
+ items:
+ $ref: '#/definitions/copy.LegacyBundle'
+ type: array
+ created_at:
+ type: string
+ dashboard_id:
+ type: integer
+ disk_id:
+ type: string
+ document_copied_from:
+ type: integer
+ files:
+ items:
+ type: integer
+ type: array
+ folders:
+ items:
+ type: integer
+ type: array
+ has_bindings:
+ type: boolean
+ has_digital_signature:
+ type: boolean
+ has_public_link:
+ type: boolean
+ has_qr_code:
+ type: boolean
+ has_stamp:
+ type: boolean
+ id:
+ type: integer
+ is_folder:
+ type: boolean
+ name:
+ type: string
+ path:
+ type: string
+ project_id:
+ type: integer
+ published_at:
+ type: string
+ type:
+ type: string
+ workspace_id:
+ type: string
+ type: object
+ copy.NewDocumentItem:
+ properties:
+ document_name:
+ type: string
+ source_bundle_id:
+ type: string
+ to_parent_document_id:
+ description: Папка, в которой будет создан новый документ.
+ type: integer
+ type: object
+ copy.NewDocumentRequest:
+ properties:
+ items:
+ items:
+ $ref: '#/definitions/copy.NewDocumentItem'
+ type: array
+ options:
+ $ref: '#/definitions/copy.FlatOptions'
+ type: object
+ copy.SelectionRequest:
+ properties:
+ document_ids:
+ items:
+ type: integer
+ type: array
+ options:
+ $ref: '#/definitions/copy.TreeOptions'
+ to_parent_document_id:
+ type: integer
+ type: object
+ copy.StartResponse:
+ properties:
+ operation_id:
+ type: string
+ type: object
+ copy.SubtreeRequest:
+ properties:
+ exclude:
+ items:
+ type: integer
+ type: array
+ options:
+ $ref: '#/definitions/copy.TreeOptions'
+ to_parent_document_id:
+ type: integer
+ type: object
+ copy.ToDocumentItem:
+ properties:
+ source_bundle_id:
+ type: string
+ target_document_id:
+ type: integer
+ type: object
+ copy.ToDocumentRequest:
+ properties:
+ items:
+ items:
+ $ref: '#/definitions/copy.ToDocumentItem'
+ type: array
+ options:
+ $ref: '#/definitions/copy.AddVersionOptions'
+ type: object
+ copy.TreeOptions:
+ properties:
+ conflict_policy:
+ default: skip
+ description: 'При совпадении имени: skip (по умолчанию, также при пустом значении)
+ — пропустить документ или папку со всем содержимым; as_copy — выбрать первое
+ свободное имя с суффиксом « copy», « copy 2», …, « copy 50». Если все варианты
+ заняты, элемент пропускается. При отсутствии совпадения имя сохраняется.
+ Существующие элементы не перезаписываются и не объединяются.'
+ enum:
+ - skip
+ - as_copy
+ example: as_copy
+ type: string
+ copy_attributes:
+ type: boolean
+ copy_issues:
+ description: Копирование замечаний не поддерживается; значение поля игнорируется.
+ type: boolean
+ publish:
+ type: boolean
+ set_copied_from:
+ type: boolean
+ type: object
+ disk.CreateInternalRequest:
+ properties:
+ admin_ids:
+ items:
+ type: integer
+ minItems: 1
+ type: array
+ author_id:
+ type: integer
+ company_id:
+ type: integer
+ storage_type:
+ enum:
+ - sarex
+ type: string
+ required:
+ - admin_ids
+ - author_id
+ - company_id
+ - storage_type
+ type: object
+ disk.CreateInternalResponse:
+ properties:
+ admin_ids:
+ items:
+ type: integer
+ type: array
+ bucket_name:
+ type: string
+ company_id:
+ type: integer
+ document_id:
+ type: integer
+ id:
+ type: string
+ name:
+ type: string
+ storage_type:
+ type: string
+ type: object
+ disk.CreateRequest:
+ properties:
+ admin_ids:
+ items:
+ type: integer
+ minItems: 1
+ type: array
+ company_id:
+ type: integer
+ storage_type:
+ enum:
+ - sarex
+ type: string
+ required:
+ - admin_ids
+ - company_id
+ - storage_type
+ type: object
+ document.AddBundleRequest:
+ properties:
+ bundle_id:
+ type: string
+ required:
+ - bundle_id
+ type: object
+ document.AddBundleResponse:
+ properties:
+ bundle_id:
+ type: string
+ document_id:
+ type: integer
+ document_name:
+ type: string
+ type: object
+ document.AttributeInput:
+ properties:
+ asset_id:
+ type: integer
+ asset_level_id:
+ type: integer
+ id:
+ type: integer
+ values:
+ items: {}
+ type: array
+ type: object
+ document.AuthorOutput:
+ properties:
+ first_name:
+ type: string
+ id:
+ type: integer
+ last_name:
+ type: string
+ type: object
+ document.BulkDeleteResponse:
+ properties:
+ deleted_ids:
+ items:
+ type: integer
+ type: array
+ skipped_ids:
+ items:
+ type: integer
+ type: array
+ type: object
+ document.BulkMovedRoot:
+ properties:
+ id:
+ type: integer
+ name:
+ type: string
+ parent_id:
+ type: integer
+ path:
+ type: string
+ type: object
+ document.BulkUpdatePathRequest:
+ properties:
+ document_ids:
+ items:
+ type: integer
+ maxItems: 301
+ minItems: 1
+ type: array
+ uniqueItems: true
+ parent_id:
+ type: integer
+ required:
+ - document_ids
+ - parent_id
+ type: object
+ document.BulkUpdatePathResponse:
+ properties:
+ roots:
+ items:
+ $ref: '#/definitions/document.BulkMovedRoot'
+ type: array
+ skipped_ids:
+ items:
+ type: integer
+ type: array
+ type: object
+ document.ChangeAuthorRequest:
+ properties:
+ include_bundles:
+ description: IncludeBundles also reassigns the author of every version of
+ the document.
+ type: boolean
+ user_id:
+ type: integer
+ required:
+ - user_id
+ type: object
+ document.CopyStructureRequest:
+ properties:
+ copy_permissions:
+ type: boolean
+ overwrite:
+ type: boolean
+ source_document_id:
+ type: integer
+ target_document_id:
+ type: integer
+ required:
+ - source_document_id
+ - target_document_id
+ type: object
+ document.CreateDashboardRequest:
+ properties:
+ dashboard_id:
+ type: integer
+ disk_id:
+ type: string
+ name:
+ maxLength: 100
+ type: string
+ parent_id:
+ type: integer
+ required:
+ - dashboard_id
+ - disk_id
+ - name
+ - parent_id
+ type: object
+ document.CreateDashboardResponse:
+ properties:
+ dashboard_id:
+ type: integer
+ disk_id:
+ type: string
+ id:
+ type: integer
+ name:
+ type: string
+ path:
+ type: string
+ type:
+ type: string
+ type: object
+ document.CreateDocumentWorkspaceResponse:
+ properties:
+ workspace_id:
+ type: string
+ type: object
+ document.CreateInternalRequest:
+ properties:
+ author_id:
+ type: integer
+ name:
+ maxLength: 250
+ type: string
+ parent_disk_id:
+ type: string
+ parent_doc_id:
+ type: integer
+ type:
+ enum:
+ - deviation
+ - abap
+ - c2c
+ - c2s
+ - pdf
+ - folder
+ - bim2bim
+ - ksg
+ type: string
+ required:
+ - author_id
+ - name
+ - parent_disk_id
+ - parent_doc_id
+ - type
+ type: object
+ document.CreateInternalResponse:
+ properties:
+ bundle:
+ $ref: '#/definitions/document.CreatedBundleResponse'
+ id:
+ type: integer
+ is_folder:
+ type: boolean
+ name:
+ type: string
+ path:
+ type: string
+ type:
+ type: string
+ workspace_id:
+ type: string
+ type: object
+ document.CreateRequest:
+ properties:
+ attributes:
+ items:
+ $ref: '#/definitions/document.AttributeInput'
+ type: array
+ bundle_id:
+ type: string
+ disk_id:
+ type: string
+ is_folder:
+ type: boolean
+ is_project:
+ type: boolean
+ name:
+ maxLength: 250
+ type: string
+ parent_id:
+ type: integer
+ target_id:
+ type: integer
+ required:
+ - disk_id
+ - is_folder
+ - name
+ - parent_id
+ type: object
+ document.CreateResponse:
+ properties:
+ disk_id:
+ type: string
+ id:
+ type: integer
+ is_folder:
+ type: boolean
+ name:
+ type: string
+ path:
+ type: string
+ project_id:
+ type: integer
+ type:
+ type: string
+ workspace_id:
+ type: string
+ type: object
+ document.CreateWorkspaceNodeRequest:
+ properties:
+ disk_id:
+ type: string
+ documents:
+ items:
+ type: integer
+ type: array
+ name:
+ maxLength: 250
+ type: string
+ parent_id:
+ type: integer
+ required:
+ - disk_id
+ - documents
+ - name
+ - parent_id
+ type: object
+ document.CreateWorkspaceNodeResponse:
+ properties:
+ disk_id:
+ type: string
+ id:
+ type: integer
+ name:
+ type: string
+ path:
+ type: string
+ type:
+ type: string
+ workspace_id:
+ type: string
+ type: object
+ document.CreatedBundleResponse:
+ properties:
+ data_sources:
+ items:
+ $ref: '#/definitions/document.CreatedDataSourceResponse'
+ type: array
+ id:
+ type: string
+ type:
+ type: string
+ upload_status:
+ type: string
+ type: object
+ document.CreatedDataSourceResponse:
+ properties:
+ id:
+ type: string
+ key:
+ type: string
+ name:
+ type: string
+ type:
+ type: string
+ type: object
+ document.DocumentType:
+ enum:
+ - workspace
+ - dashboard
+ - cloud
+ - bim
+ - bimv2
+ - bimv3
+ - project
+ - folder
+ - root
+ - surface
+ - pdf
+ - xlsx
+ - orthophoto
+ - dem
+ - dxf
+ - ksg
+ - docx
+ - dwg
+ - jpeg
+ - png
+ - gif
+ - heic
+ - docx_template
+ - docx_maf
+ - link
+ - doc
+ - rtf
+ - xls
+ - other_files
+ - deviation
+ - abap
+ - c2c
+ - c2s
+ - bim2bim
+ - glb
+ - gaussian_splats
+ type: string
+ x-enum-varnames:
+ - TypeWorkspace
+ - TypeDashboard
+ - TypeCloudLas
+ - TypeBIM
+ - TypeBIMV2
+ - TypeBIMV3
+ - TypeProject
+ - TypeFolder
+ - TypeRoot
+ - TypeSurface
+ - TypePDF
+ - TypeXlsx
+ - TypeOrthophoto
+ - TypeDem
+ - TypeDxf
+ - TypeKSG
+ - TypeDocx
+ - TypeDWG
+ - TypeJpeg
+ - TypePng
+ - TypeGif
+ - TypeHeic
+ - TypeDocxTemplate
+ - TypeDocxMAF
+ - TypeLink
+ - TypeDoc
+ - TypeRtf
+ - TypeXls
+ - TypeOtherFiles
+ - TypeDeviation
+ - TypeAbap
+ - TypeC2c
+ - TypeC2s
+ - TypeBim2Bim
+ - TypeGlb
+ - TypeGaussianSplats
+ document.FileTypeCount:
+ properties:
+ count:
+ type: integer
+ type:
+ type: string
+ type: object
+ document.FolderPropertiesOutput:
+ properties:
+ author:
+ $ref: '#/definitions/document.AuthorOutput'
+ created_at:
+ type: string
+ document_id:
+ type: integer
+ file_count:
+ type: integer
+ file_types:
+ items:
+ $ref: '#/definitions/document.FileTypeCount'
+ type: array
+ folder_count:
+ type: integer
+ size:
+ type: integer
+ type: object
+ document.RenameRequest:
+ properties:
+ name:
+ maxLength: 250
+ type: string
+ required:
+ - name
+ type: object
+ document.RenameResponse:
+ properties:
+ id:
+ type: integer
+ name:
+ type: string
+ path:
+ type: string
+ type: object
+ document.ResolveRelativePathRequest:
+ properties:
+ document_ids:
+ items:
+ type: integer
+ minItems: 1
+ type: array
+ relative_path:
+ type: string
+ should_folder_be_created:
+ type: boolean
+ user_service_accounts:
+ items:
+ type: string
+ minItems: 1
+ type: array
+ required:
+ - document_ids
+ - user_service_accounts
+ type: object
+ document.ResolveRelativePathResponse:
+ properties:
+ result:
+ items:
+ $ref: '#/definitions/document.ResolvedDocumentPathResponse'
+ type: array
+ type: object
+ document.ResolvedDocumentPathResponse:
+ properties:
+ document_id:
+ type: integer
+ path:
+ type: string
+ type: object
+ document.SuperCreateBundleRequest:
+ properties:
+ date:
+ type: string
+ keys:
+ items:
+ $ref: '#/definitions/document.SuperCreateKeyRequest'
+ minItems: 1
+ type: array
+ type:
+ type: string
+ required:
+ - keys
+ - type
+ type: object
+ document.SuperCreateKeyRequest:
+ properties:
+ key:
+ type: string
+ name:
+ maxLength: 250
+ type: string
+ type:
+ enum:
+ - folder
+ - file
+ type: string
+ required:
+ - key
+ - name
+ - type
+ type: object
+ document.SuperCreateRequest:
+ properties:
+ author_id:
+ type: integer
+ bundles:
+ items:
+ $ref: '#/definitions/document.SuperCreateBundleRequest'
+ minItems: 1
+ type: array
+ name:
+ maxLength: 250
+ type: string
+ parent_doc_id:
+ type: integer
+ type:
+ type: string
+ required:
+ - author_id
+ - bundles
+ - name
+ - parent_doc_id
+ - type
+ type: object
+ document.SuperCreateResponse:
+ properties:
+ bundles:
+ items:
+ $ref: '#/definitions/document.CreatedBundleResponse'
+ type: array
+ id:
+ type: integer
+ name:
+ type: string
+ path:
+ type: string
+ type:
+ type: string
+ workspace_id:
+ type: string
+ type: object
+ document.TreeNodeOutput:
+ properties:
+ has_children:
+ type: boolean
+ id:
+ type: integer
+ is_folder:
+ type: boolean
+ name:
+ type: string
+ parent_id:
+ type: integer
+ path:
+ type: string
+ type:
+ type: string
+ type: object
+ document.TreeOutput:
+ properties:
+ documents:
+ items:
+ $ref: '#/definitions/document.TreeNodeOutput'
+ type: array
+ type: object
+ document.UpdatePathRequest:
+ properties:
+ parent_id:
+ type: integer
+ required:
+ - parent_id
+ type: object
+ document.UpdatePathResponse:
+ properties:
+ id:
+ type: integer
+ name:
+ type: string
+ parent_id:
+ type: integer
+ path:
+ type: string
+ type: object
+ link.CreateOutput:
+ properties:
+ created_at:
+ type: string
+ id:
+ type: integer
+ name:
+ type: string
+ path:
+ type: string
+ target_document_id:
+ type: integer
+ type:
+ $ref: '#/definitions/document.DocumentType'
+ type: object
+ link.CreateRequest:
+ properties:
+ disk_id:
+ type: string
+ parent_id:
+ type: integer
+ target_document_id:
+ type: integer
+ required:
+ - disk_id
+ - parent_id
+ - target_document_id
+ type: object
+ mark.deleteMarksRequest:
+ properties:
+ qr_ids:
+ items:
+ type: string
+ type: array
+ signature_ids:
+ items:
+ type: string
+ type: array
+ stamp_ids:
+ items:
+ type: string
+ type: array
+ type: object
+ mark.listMarksMarkResponse:
+ properties:
+ id:
+ type: string
+ pages:
+ items:
+ type: integer
+ type: array
+ timestamp:
+ type: string
+ x_coordinate:
+ type: integer
+ y_coordinate:
+ type: integer
+ type: object
+ mark.listMarksQRsResponse:
+ properties:
+ is_canceled:
+ type: boolean
+ mark:
+ $ref: '#/definitions/mark.listMarksMarkResponse'
+ type: object
+ mark.listMarksResponse:
+ properties:
+ qrs:
+ items:
+ $ref: '#/definitions/mark.listMarksQRsResponse'
+ type: array
+ signatures:
+ items:
+ $ref: '#/definitions/mark.listMarksSignaturesResponse'
+ type: array
+ stamps:
+ items:
+ $ref: '#/definitions/mark.listMarksStampsResponse'
+ type: array
+ type: object
+ mark.listMarksSignaturesResponse:
+ properties:
+ company_name:
+ type: string
+ header:
+ type: string
+ mark:
+ $ref: '#/definitions/mark.listMarksMarkResponse'
+ owner:
+ type: string
+ thumbprint:
+ type: string
+ user_full_name:
+ type: string
+ valid_from:
+ type: string
+ valid_to:
+ type: string
+ type: object
+ mark.listMarksStampsResponse:
+ properties:
+ company_name:
+ type: string
+ header:
+ type: string
+ mark:
+ $ref: '#/definitions/mark.listMarksMarkResponse'
+ role_name:
+ type: string
+ user_full_name:
+ type: string
+ type: object
+ move.ItemStatusResponse:
+ properties:
+ action:
+ type: string
+ document_id:
+ type: integer
+ name:
+ type: string
+ path:
+ type: string
+ reason:
+ type: string
+ status:
+ type: string
+ target_document_id:
+ description: Созданный или целевой документ копирования.
+ type: integer
+ type: object
+ move.MoveBundlesRequest:
+ properties:
+ bundle_ids:
+ items:
+ type: string
+ type: array
+ skip_copied_guard:
+ description: |-
+ Разрешить объединение версий, у которых есть копии на согласовании.
+ Завершение активного согласования может ссылаться на уже удалённый исходный документ.
+ type: boolean
+ type: object
+ move.MoveRequest:
+ properties:
+ items:
+ items:
+ $ref: '#/definitions/move.MoveRequestItem'
+ type: array
+ skip_copied_guard:
+ description: |-
+ Разрешить объединение версий, у которых есть копии на согласовании.
+ Завершение активного согласования может ссылаться на уже удалённый исходный документ.
+ type: boolean
+ to_parent_document_id:
+ type: integer
+ type: object
+ move.MoveRequestItem:
+ properties:
+ action:
+ description: 'Action: reparent (default) | as_copy | union | skip.'
+ type: string
+ document_id:
+ type: integer
+ new_document_name:
+ description: |-
+ NewDocumentName — опциональное переименование в рамках переноса (например,
+ когда целевая папка диктует шаблон наименования). reparent: документ
+ переносится под новым именем, конфликт в назначении проверяется по
+ финальному имени (новому, если задано, иначе текущему). union: пара для
+ объединения ищется по старому имени источника, объединение происходит под
+ ним, затем целевой документ переименовывается — новое имя должно
+ быть свободно (иначе 409). as_copy: новое имя служит базой для суффикса
+ « copy N». Переименование без смены папки — 400 (это задача /rename).
+ type: string
+ type: object
+ move.OperationListResponse:
+ properties:
+ operations:
+ items:
+ $ref: '#/definitions/move.StatusResponse'
+ type: array
+ type: object
+ move.ProgressResponse:
+ properties:
+ done:
+ type: integer
+ failed:
+ type: integer
+ in_progress:
+ type: integer
+ percent:
+ type: integer
+ skipped:
+ type: integer
+ total:
+ type: integer
+ type: object
+ move.RefreshDocument:
+ properties:
+ document_id:
+ type: integer
+ name:
+ type: string
+ role:
+ type: string
+ type: object
+ move.StartResponse:
+ properties:
+ operation_id:
+ type: string
+ type: object
+ move.StatusResponse:
+ properties:
+ cancel_requested:
+ type: boolean
+ created_at:
+ type: string
+ current_step:
+ type: string
+ error:
+ type: string
+ items:
+ items:
+ $ref: '#/definitions/move.ItemStatusResponse'
+ type: array
+ items_total:
+ description: |-
+ Число элементов, соответствующих фильтру; при переносе учитываются
+ только пропущенные элементы и ошибки.
+ type: integer
+ operation_id:
+ type: string
+ progress:
+ $ref: '#/definitions/move.ProgressResponse'
+ refresh_document_ids:
+ items:
+ $ref: '#/definitions/move.RefreshDocument'
+ type: array
+ status:
+ type: string
+ type:
+ type: string
+ updated_at:
+ type: string
+ type: object
+ optional.Value-string:
+ type: object
+ page.CreateRequest:
+ properties:
+ data_source:
+ type: string
+ id:
+ type: string
+ page_order:
+ type: integer
+ thumbnail:
+ type: string
+ required:
+ - data_source
+ - id
+ type: object
+ page.CreateResponse:
+ properties:
+ id:
+ type: string
+ page_order:
+ type: integer
+ thumbnail:
+ type: string
+ type: object
+ permission.SetRequest:
+ properties:
+ permissions:
+ description: 'Полный желаемый набор прав: отсутствующие права отзываются,
+ новые добавляются. Пустой список отзывает все прямые права получателя; унаследованные
+ права сохраняются.'
+ items:
+ type: string
+ type: array
+ service_account:
+ description: Получатель, чьи прямые права на документе нужно полностью заменить.
+ type: string
+ type: object
+ permissionmatrix.GrantOutput:
+ properties:
+ document_id:
+ type: integer
+ permissions:
+ items:
+ type: string
+ type: array
+ service_account:
+ type: string
+ type: object
+ permissionmatrix.GrantsQueryRequest:
+ properties:
+ document_ids:
+ items:
+ type: integer
+ minItems: 1
+ type: array
+ service_accounts:
+ items:
+ type: string
+ minItems: 1
+ type: array
+ required:
+ - document_ids
+ - service_accounts
+ type: object
+ permissionmatrix.GrantsQueryResponse:
+ properties:
+ grants:
+ items:
+ $ref: '#/definitions/permissionmatrix.GrantOutput'
+ type: array
+ type: object
+ publiclink.CreateOutput:
+ properties:
+ id:
+ type: string
+ public_link:
+ type: string
+ type: object
+ publiclink.CreateRequest:
+ properties:
+ bundle_id:
+ type: string
+ document_id:
+ type: integer
+ document_url:
+ type: string
+ expires_at:
+ type: string
+ is_auto_deletion_available:
+ type: boolean
+ version:
+ enum:
+ - latest
+ - specified
+ - latest_approved
+ type: string
+ required:
+ - version
+ type: object
+ publiclink.UpdateOutput:
+ properties:
+ bundle_id:
+ type: string
+ created_at:
+ type: string
+ created_by:
+ type: integer
+ document_id:
+ type: integer
+ expires_at:
+ type: string
+ id:
+ type: string
+ is_auto_deletion_available:
+ type: boolean
+ updated_at:
+ type: string
+ version:
+ type: string
+ type: object
+ publiclink.UpdateRequest:
+ properties:
+ bundle_id:
+ description: Идентификатор выбранной версии; null очищает значение. Для version=specified
+ у ссылки должна быть выбрана версия.
+ format: uuid
+ type: string
+ x-nullable: true
+ expires_at:
+ description: Срок действия ссылки; null делает ссылку бессрочной.
+ format: date-time
+ type: string
+ x-nullable: true
+ is_auto_deletion_available:
+ description: Разрешить автоматическое удаление; null равнозначен false.
+ type: boolean
+ x-nullable: true
+ version:
+ description: Выбор версии; отсутствие поля сохраняет текущее значение.
+ enum:
+ - latest
+ - specified
+ - latest_approved
+ type: string
+ type: object
+ s32d.CheckConflictsRequest:
+ properties:
+ disk_id:
+ type: string
+ items:
+ items:
+ $ref: '#/definitions/s32d.ConflictCheckItem'
+ minItems: 1
+ type: array
+ required:
+ - disk_id
+ - items
+ type: object
+ s32d.CheckConflictsResponse:
+ properties:
+ conflicts:
+ items:
+ $ref: '#/definitions/s32d.ConflictResult'
+ type: array
+ no_conflict_count:
+ type: integer
+ type: object
+ s32d.ConflictCheckItem:
+ properties:
+ name:
+ maxLength: 250
+ type: string
+ parent_id:
+ type: integer
+ required:
+ - name
+ - parent_id
+ type: object
+ s32d.ConflictResult:
+ properties:
+ existing_document_id:
+ type: integer
+ existing_document_type:
+ type: string
+ name:
+ type: string
+ parent_id:
+ type: integer
+ type: object
+ s32d.CreateSessionRequest:
+ properties:
+ archive_name:
+ maxLength: 500
+ type: string
+ disk_id:
+ type: string
+ manifest:
+ $ref: '#/definitions/s32d.ManifestRequest'
+ required:
+ - archive_name
+ - disk_id
+ - manifest
+ type: object
+ s32d.CreateSessionResponse:
+ properties:
+ session_id:
+ type: string
+ type: object
+ s32d.InitMultipartResponse:
+ properties:
+ upload_id:
+ type: string
+ type: object
+ s32d.ListSessionsResponse:
+ properties:
+ items:
+ items:
+ $ref: '#/definitions/s32d.SessionListItemResponse'
+ type: array
+ total:
+ type: integer
+ type: object
+ s32d.ManifestAttributeRequest:
+ properties:
+ asset_id:
+ type: integer
+ asset_level_id:
+ type: integer
+ id:
+ type: integer
+ values:
+ items: {}
+ type: array
+ required:
+ - id
+ type: object
+ s32d.ManifestBundleRequest:
+ properties:
+ changelog:
+ $ref: '#/definitions/s32d.ManifestChangelogRequest'
+ comment:
+ type: string
+ keys:
+ items:
+ $ref: '#/definitions/s32d.ManifestKeyRequest'
+ minItems: 1
+ type: array
+ type:
+ type: string
+ required:
+ - keys
+ - type
+ type: object
+ s32d.ManifestChangelogRequest:
+ properties:
+ description:
+ maxLength: 1000
+ type: string
+ "no":
+ type: string
+ required:
+ - "no"
+ type: object
+ s32d.ManifestDocumentRequest:
+ properties:
+ attributes:
+ items:
+ $ref: '#/definitions/s32d.ManifestAttributeRequest'
+ type: array
+ name:
+ maxLength: 250
+ type: string
+ required:
+ - name
+ type: object
+ s32d.ManifestItemRequest:
+ properties:
+ action:
+ enum:
+ - create
+ - add_bundle
+ type: string
+ bundle:
+ $ref: '#/definitions/s32d.ManifestBundleRequest'
+ document:
+ $ref: '#/definitions/s32d.ManifestDocumentRequest'
+ existing_document_id:
+ type: integer
+ parent_id:
+ type: integer
+ s32d_file_path:
+ type: string
+ required:
+ - action
+ - bundle
+ - parent_id
+ - s32d_file_path
+ type: object
+ s32d.ManifestKeyRequest:
+ properties:
+ key:
+ type: string
+ name:
+ maxLength: 250
+ type: string
+ type:
+ enum:
+ - folder
+ - file
+ type: string
+ required:
+ - key
+ - name
+ - type
+ type: object
+ s32d.ManifestRequest:
+ properties:
+ items:
+ items:
+ $ref: '#/definitions/s32d.ManifestItemRequest'
+ minItems: 1
+ type: array
+ required:
+ - items
+ type: object
+ s32d.ProcessSessionResponse:
+ properties:
+ session_id:
+ type: string
+ type: object
+ s32d.ProgressOutput:
+ properties:
+ published_files:
+ type: integer
+ total_files:
+ type: integer
+ uploaded_files:
+ type: integer
+ workflows_completed:
+ type: integer
+ type: object
+ s32d.SessionListItemResponse:
+ properties:
+ archive_name:
+ type: string
+ completed_at:
+ type: string
+ created_at:
+ type: string
+ current_step:
+ type: string
+ errors:
+ items:
+ type: string
+ type: array
+ progress:
+ $ref: '#/definitions/s32d.ProgressOutput'
+ session_id:
+ type: string
+ status:
+ type: string
+ type: object
+ s32d.SessionStatusResponse:
+ properties:
+ archive_name:
+ type: string
+ completed_at:
+ type: string
+ created_at:
+ type: string
+ current_step:
+ type: string
+ errors:
+ items:
+ type: string
+ type: array
+ progress:
+ $ref: '#/definitions/s32d.ProgressOutput'
+ session_id:
+ type: string
+ status:
+ type: string
+ type: object
+ s32d.UploadArchiveResponse:
+ properties:
+ archive_size:
+ type: integer
+ type: object
+ s32d.UploadPartResponse:
+ properties:
+ etag:
+ type: string
+ part_number:
+ type: integer
+ type: object
+ sizer.getLatestStatResponse:
+ properties:
+ created_at:
+ type: string
+ run_id:
+ type: string
+ stat:
+ items:
+ $ref: '#/definitions/sizer.getLatestStatResponseStat'
+ type: array
+ type: object
+ sizer.getLatestStatResponseStat:
+ properties:
+ count:
+ type: integer
+ total_size:
+ type: integer
+ type:
+ type: string
+ user_size:
+ type: integer
+ type: object
+ upload.MultipartFinishedResponse:
+ properties:
+ status:
+ example: completed
+ type: string
+ upload_id:
+ type: string
+ type: object
+ upload.StartMultipartInternalResponse:
+ properties:
+ upload_id:
+ type: string
+ upload_url:
+ type: string
+ type: object
+ upload.StartMultipartResponse:
+ properties:
+ bundle_id:
+ type: string
+ key:
+ example: pdf
+ type: string
+ upload_id:
+ type: string
+ upload_url:
+ type: string
+ type: object
+ upload.UploadPartResponse:
+ properties:
+ etag:
+ type: string
+ part_number:
+ type: integer
+ size:
+ type: integer
+ status:
+ example: uploaded
+ type: string
+ upload_id:
+ type: string
+ type: object
+ upload.UploadSingleResponse:
+ properties:
+ bundle_id:
+ type: string
+ filename:
+ type: string
+ key:
+ example: pdf
+ type: string
+ size:
+ type: integer
+ status:
+ example: uploaded
+ type: string
+ type: object
+info:
+ contact: {}
+ description: API для работы с документами, версиями, файлами, правами доступа и
+ публичными ссылками.
+ title: cde-api
+ version: "1.0"
+paths:
+ /app/v1/async-operations:
+ get:
+ description: Возвращает активные и недавно завершённые операции копирования
+ и переноса. Доступны только собственные операции пользователя.
+ parameters:
+ - description: 'Фильтр по типу: copy|move|move_bundles'
+ in: query
+ name: type
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/move.OperationListResponse'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ summary: Получить список операций
+ tags:
+ - async-operations
+ /app/v1/async-operations/{id}:
+ get:
+ description: Возвращает состояние, прогресс и результаты копирования или переноса.
+ Доступно только создателю операции.
+ parameters:
+ - description: UUID операции
+ in: path
+ name: id
+ required: true
+ type: string
+ - description: 'copy: размер страницы items (default 1000)'
+ in: query
+ name: items_limit
+ type: integer
+ - description: 'copy: смещение'
+ in: query
+ name: items_offset
+ type: integer
+ - description: 'copy: фильтр pending|running|done|skipped|failed'
+ in: query
+ name: items_status
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/move.StatusResponse'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Получить состояние операции
+ tags:
+ - async-operations
+ /app/v1/async-operations/{id}/cancel:
+ post:
+ description: Запрашивает отмену копирования или переноса. Уже выполненные изменения
+ не откатываются. Если копирование достигло этапа публикации результата, возвращается
+ 409. Доступно только создателю операции.
+ parameters:
+ - description: UUID операции
+ in: path
+ name: id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "202":
+ description: Отмена запрошена
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ "409":
+ description: Conflict
+ schema:
+ $ref: '#/definitions/apperrors.APIError409'
+ summary: Отменить операцию
+ tags:
+ - async-operations
+ /app/v1/bundles/:
+ post:
+ consumes:
+ - application/json
+ description: Создаёт версию и возвращает параметры для загрузки её файлов. Диск
+ должен принадлежать одной из компаний пользователя, указанных в токене.
+ parameters:
+ - description: Параметры версии документа
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/bundle.CreateRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/bundle.CreateResponse'
+ "400":
+ description: Некорректное тело / диск не найден
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "422":
+ description: Ключи не подходят типу версии / расширение имени
+ schema:
+ $ref: '#/definitions/apperrors.APIError422'
+ summary: Создать версию документа
+ tags:
+ - bundles
+ /app/v1/bundles/{bundle_id}:
+ delete:
+ description: Мягкое удаление версии; последнюю версию документа удалить нельзя.
+ parameters:
+ - description: UUID бандла
+ in: path
+ name: bundle_id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "204":
+ description: Удалён
+ "400":
+ description: Не загружен / без документа / последняя версия
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Удалить бандл
+ tags:
+ - bundles
+ /app/v1/bundles/{bundle_id}/{key}/upload_multipart:
+ post:
+ description: Возвращает идентификатор загрузки и адрес для отправки частей в
+ той же версии API. Диск должен принадлежать одной из компаний пользователя,
+ указанных в токене.
+ parameters:
+ - description: Идентификатор версии документа
+ in: path
+ name: bundle_id
+ required: true
+ type: string
+ - description: Ключ файла версии
+ in: path
+ name: key
+ required: true
+ type: string
+ - description: Относительный путь файла в наборе файлов версии; только для типа
+ folder
+ in: query
+ name: path
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/upload.StartMultipartResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Начать загрузку файла по частям
+ tags:
+ - uploads
+ /app/v1/bundles/{bundle_id}/{key}/upload_single:
+ post:
+ consumes:
+ - application/octet-stream
+ description: 'Файл передаётся в теле запроса с Content-Type: application/octet-stream
+ и Content-Length. Формат multipart/form-data не поддерживается. Диск должен
+ принадлежать одной из компаний пользователя, указанных в токене.'
+ parameters:
+ - description: Идентификатор версии документа
+ in: path
+ name: bundle_id
+ required: true
+ type: string
+ - description: Ключ файла версии
+ in: path
+ name: key
+ required: true
+ type: string
+ - description: Относительный путь файла в наборе файлов версии; только для типа
+ folder
+ in: query
+ name: path
+ type: string
+ - description: Имя файла
+ in: query
+ name: filename
+ type: string
+ - description: Байты файла в теле запроса, без JSON-обёртки и кодирования Base64
+ in: body
+ name: content
+ required: true
+ schema:
+ type: string
+ - description: Размер тела запроса в байтах
+ format: int64
+ in: header
+ minimum: 1
+ name: Content-Length
+ required: true
+ type: integer
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/upload.UploadSingleResponse'
+ "400":
+ description: Форма вместо raw / нет Content-Length
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Загрузить файл версии одним запросом
+ tags:
+ - uploads
+ /app/v1/bundles/{bundle_id}/bindings:
+ get:
+ parameters:
+ - description: UUID бандла
+ in: path
+ name: bundle_id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/binding.GetBindingsOutput'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Связи s32d бандла
+ tags:
+ - bundles
+ /app/v1/bundles/{bundle_id}/cancel_qr:
+ post:
+ description: Аннулирует QR-код указанной версии. Требуется право нанесения QR-кода
+ или администрирования документа; также доступно администратору диска.
+ parameters:
+ - description: Идентификатор версии документа
+ in: path
+ name: bundle_id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "204":
+ description: Аннулирован
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Аннулировать QR-код версии документа
+ tags:
+ - bundles
+ /app/v1/bundles/{bundle_id}/changelog/:
+ patch:
+ consumes:
+ - application/json
+ description: Обновляет номер и описание изменений. Отсутствующее description
+ сохраняется, null очищает его. Требуется право редактирования или администрирования
+ документа; также доступно администратору диска.
+ parameters:
+ - description: Идентификатор версии документа
+ in: path
+ name: bundle_id
+ required: true
+ type: string
+ - description: Изменения
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/changelog.UpdateRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: Обновлённое описание изменений
+ schema:
+ $ref: '#/definitions/changelog.UpdateResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ "422":
+ description: Unprocessable Entity
+ schema:
+ $ref: '#/definitions/apperrors.APIError422'
+ summary: Изменить описание изменений версии
+ tags:
+ - changelogs
+ post:
+ consumes:
+ - application/json
+ description: Сохраняет номер и описание изменений версии. Повторное создание
+ возвращает 409. Требуется право редактирования или администрирования документа;
+ также доступно администратору диска.
+ parameters:
+ - description: Идентификатор версии документа
+ in: path
+ name: bundle_id
+ required: true
+ type: string
+ - description: Номер и описание
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/changelog.CreateRequest'
+ produces:
+ - application/json
+ responses:
+ "201":
+ description: Описание изменений версии
+ schema:
+ $ref: '#/definitions/changelog.Response'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ "409":
+ description: Conflict
+ schema:
+ $ref: '#/definitions/apperrors.APIError409'
+ "422":
+ description: Unprocessable Entity
+ schema:
+ $ref: '#/definitions/apperrors.APIError422'
+ summary: Добавить описание изменений версии
+ tags:
+ - changelogs
+ /app/v1/bundles/{bundle_id}/comment:
+ patch:
+ consumes:
+ - application/json
+ description: 'Tri-state тело: строка — установить, null — очистить, отсутствие
+ поля — 400.'
+ parameters:
+ - description: UUID бандла
+ in: path
+ name: bundle_id
+ required: true
+ type: string
+ - description: Комментарий
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/bundle.UpdateCommentRequest'
+ produces:
+ - application/json
+ responses:
+ "204":
+ description: Обновлён
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Изменить комментарий бандла
+ tags:
+ - bundles
+ /app/v1/bundles/{bundle_id}/mark:
+ post:
+ consumes:
+ - application/json
+ description: Создаёт новую промаркированную версию по чистому бандлу и определениям
+ марок.
+ parameters:
+ - description: UUID бандла
+ in: path
+ name: bundle_id
+ required: true
+ type: string
+ - description: Определения марок
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/bundle.markBundleRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/bundle.markBundleResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Нанести марки (QR/штамп/подпись)
+ tags:
+ - bundles
+ /app/v1/bundles/{bundle_id}/presign:
+ get:
+ description: Возвращает хеш файла версии для формирования электронной подписи.
+ Требуется право электронной подписи или администрирования документа; также
+ доступно администратору диска.
+ parameters:
+ - description: Идентификатор формата UUID версии документа
+ in: path
+ name: bundle_id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/bundle.PresignResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Подготовить версию к электронной подписи
+ tags:
+ - bundles
+ /app/v1/bundles/{bundle_id}/regenerate_marks:
+ put:
+ description: Замещает текущую печатную версию на новую, сгенерированную по состоянию
+ из базы данных
+ parameters:
+ - description: UUID бандла
+ in: path
+ name: bundle_id
+ required: true
+ type: string
+ responses:
+ "204":
+ description: No Content
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Перегенерация печатной версии документа
+ tags:
+ - bundles
+ /app/v1/bundles/{bundle_id}/restart:
+ post:
+ description: Переигрывает упавшую задачу workflow либо стартует пайплайн, если
+ workflow ещё нет.
+ parameters:
+ - description: UUID бандла
+ in: path
+ name: bundle_id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/bundle.RestartResponse'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ "409":
+ description: Уже выполняется (CDE-0011) / завершена (CDE-0012) / нечего
+ перезапускать (CDE-0013)
+ schema:
+ $ref: '#/definitions/apperrors.APIError409'
+ summary: Перезапустить обработку
+ tags:
+ - bundles
+ /app/v1/bundles/{bundle_id}/upload_finish:
+ post:
+ description: Подтверждает завершение загрузки всех файлов версии. Диск должен
+ принадлежать одной из компаний пользователя, указанных в токене.
+ parameters:
+ - description: Идентификатор версии документа
+ in: path
+ name: bundle_id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/bundle.CompleteUploadResponse'
+ "400":
+ description: Некорректный bundle_id / контент не залит
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Версия не найдена
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Завершить загрузку версии документа
+ tags:
+ - bundles
+ /app/v1/bundles/copy:
+ post:
+ consumes:
+ - application/json
+ description: |-
+ Создаёт новый документ на основе выбранной версии. Возвращает идентификатор операции; Prefer: wait заголовок позволяет дождаться результата в течение выбранного количества секунд в том же запросе, вместо того, чтобы отслеживать статус через API асинхронных операций. Требуется право записи или администрирования в месте назначения; также доступно администратору соответствующего диска.
+ Для ожидания результата в том же запросе передайте заголовок Prefer: wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за это время получен итоговый статус операции, возвращается HTTP 200 с её результатом. HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время итоговый результат не получен возвращается HTTP 202 с operation_id, без результата операции; дальнейший статус проверяйте через GET /async-operations/{id} в том же контуре и версии API. Истечение времени ожидания не отменяет операцию.
+ parameters:
+ - description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
+ HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
+ проверки статуса
+ in: header
+ name: Prefer
+ type: string
+ - description: Параметры
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/copy.NewDocumentRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: 'Итоговый статус получен за время Prefer: wait=N. Результат
+ операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
+ выполнения'
+ schema:
+ $ref: '#/definitions/move.StatusResponse'
+ "202":
+ description: 'Операция принята: возвращается operation_id без итогового
+ результата. Ожидание не запрошено либо итоговый результат не получен за
+ отведённое время'
+ schema:
+ $ref: '#/definitions/copy.StartResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "409":
+ description: Конфликт имён в назначении
+ schema:
+ $ref: '#/definitions/apperrors.APIError409'
+ summary: Скопировать версию в новый документ
+ tags:
+ - copy
+ /app/v1/bundles/copy-to-document:
+ post:
+ consumes:
+ - application/json
+ description: |-
+ Добавляет копию версии в другой документ. Копирование BIM-версий этим способом не поддерживается. Возвращает идентификатор операции; Prefer: wait позволяет дождаться результата в том же запросе, если операция не успела завершиться за это время, то возвращает статус создания асинхронной операции, а не ее результат. Требуется право записи или администрирования в месте назначения; также доступно администратору соответствующего диска.
+ Для ожидания результата в том же запросе передайте заголовок Prefer: wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за это время получен итоговый статус операции, возвращается HTTP 200 с её результатом. HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время итоговый результат не получен возвращается HTTP 202 с operation_id, без результата операции; дальнейший статус проверяйте через GET /async-operations/{id} в том же контуре и версии API. Истечение времени ожидания не отменяет операцию.
+ parameters:
+ - description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
+ HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
+ проверки статуса
+ in: header
+ name: Prefer
+ type: string
+ - description: Параметры
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/copy.ToDocumentRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: 'Итоговый статус получен за время Prefer: wait=N. Результат
+ операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
+ выполнения'
+ schema:
+ $ref: '#/definitions/move.StatusResponse'
+ "202":
+ description: 'Операция принята: возвращается operation_id без итогового
+ результата. Ожидание не запрошено либо итоговый результат не получен за
+ отведённое время'
+ schema:
+ $ref: '#/definitions/copy.StartResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "409":
+ description: Конфликт имён в назначении
+ schema:
+ $ref: '#/definitions/apperrors.APIError409'
+ summary: Скопировать версию в существующий документ
+ tags:
+ - copy
+ /app/v1/dashboards:
+ post:
+ consumes:
+ - application/json
+ parameters:
+ - description: Параметры
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/document.CreateDashboardRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/document.CreateDashboardResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ "409":
+ description: Conflict
+ schema:
+ $ref: '#/definitions/apperrors.APIError409'
+ summary: Создать дашборд-документ
+ tags:
+ - documents
+ /app/v1/disks:
+ post:
+ consumes:
+ - application/json
+ description: 'Создаёт диск компании: имя и бакет выводятся из компании, создаётся
+ S3-бакет и корневой документ. Доступно только суперюзеру. Ответ упрощённый.'
+ parameters:
+ - description: Параметры диска
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/disk.CreateRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/disk.CreateInternalResponse'
+ "400":
+ description: Компания/админы не найдены
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Требуются права суперюзера
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "409":
+ description: Бакет уже существует
+ schema:
+ $ref: '#/definitions/apperrors.APIError409'
+ "422":
+ description: Unprocessable Entity
+ schema:
+ $ref: '#/definitions/apperrors.APIError422'
+ "502":
+ description: Каталог пользователей недоступен
+ schema:
+ $ref: '#/definitions/apperrors.APIError502'
+ summary: Создать диск
+ tags:
+ - disks
+ /app/v1/disks/{disk_id}/documents/tree:
+ get:
+ description: 'Минимальная проекция дерева с видимостью запрашивающего. parent_id
+ — дети узла (по умолчанию корень диска); child_id — deep-link: цепочка от
+ корня до узла и дети каждого узла цепочки. Параметры взаимоисключающие.'
+ parameters:
+ - description: ID диска (UUID)
+ in: path
+ name: disk_id
+ required: true
+ type: string
+ - description: Узел, детей которого вернуть
+ in: query
+ name: parent_id
+ type: integer
+ - description: Deep-link до узла
+ in: query
+ name: child_id
+ type: integer
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/document.TreeOutput'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Дерево документации с минимальным набором данных
+ tags:
+ - documents
+ /app/v1/disks/{disk_id}/permission-matrix/grants:
+ post:
+ consumes:
+ - application/json
+ description: 'Прямые permission-строки запрошенных сервисных аккаунтов на запрошенных
+ документах. Доступ: администратор диска или права админа на корне диска. Удалённые,
+ неопубликованные и принадлежащие другому диску документы исключаются. Лимиты:
+ ≤100 SA, ≤1000 id, произведение ≤50000.'
+ parameters:
+ - description: ID диска (UUID)
+ in: path
+ name: disk_id
+ required: true
+ type: string
+ - description: Прямоугольник запроса
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/permissionmatrix.GrantsQueryRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/permissionmatrix.GrantsQueryResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Гранты матрицы прав (прямоугольник ids × SA)
+ tags:
+ - permission-matrix
+ /app/v1/documents/:
+ delete:
+ description: ID через запятую в query; недоступные попадают в skipped_ids.
+ parameters:
+ - description: ID через запятую
+ in: query
+ name: document_ids
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/document.BulkDeleteResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ summary: Массовое удаление
+ tags:
+ - documents
+ post:
+ consumes:
+ - application/json
+ description: Для проекта требуется право администрирования родительской папки;
+ для папки — записи или администрирования; для документа — загрузки, записи
+ или администрирования. Также доступно администратору диска. Диск должен принадлежать
+ одной из компаний пользователя, указанных в токене.
+ parameters:
+ - description: Параметры документа
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/document.CreateRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/document.CreateResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Родитель не найден
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ "409":
+ description: Имя занято
+ schema:
+ $ref: '#/definitions/apperrors.APIError409'
+ summary: Создать документ, папку или проект
+ tags:
+ - documents
+ /app/v1/documents/{document_id}:
+ delete:
+ parameters:
+ - description: ID документа
+ in: path
+ name: document_id
+ required: true
+ type: integer
+ produces:
+ - application/json
+ responses:
+ "204":
+ description: Удалён
+ "400":
+ description: Корень диска удалить нельзя
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Удалить документ
+ tags:
+ - documents
+ /app/v1/documents/{document_id}/add_bundle:
+ post:
+ consumes:
+ - application/json
+ description: Привязывает загруженную версию к документу. Требуется право загрузки,
+ записи или администрирования документа; также доступно администратору диска.
+ parameters:
+ - description: ID документа
+ in: path
+ name: document_id
+ required: true
+ type: integer
+ - description: Идентификатор версии документа
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/document.AddBundleRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/document.AddBundleResponse'
+ "400":
+ description: Версия уже привязана к документу или ещё не загружена
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Добавить версию в документ
+ tags:
+ - documents
+ /app/v1/documents/{document_id}/attributes/:
+ put:
+ consumes:
+ - application/json
+ description: 'Заменяет атрибуты документа полным набором из attributes. Новые
+ атрибуты добавляются, значения существующих обновляются, отсутствующие в запросе
+ атрибуты удаляются из активного набора. Атрибуты с пустым списком values также
+ удаляются из активного набора. Передавайте весь желаемый набор атрибутов,
+ а не только изменения. Пустой список attributes: [] очищает все атрибуты документа.
+ Требуется право редактирования или администрирования документа; также доступно
+ администратору соответствующего диска.'
+ parameters:
+ - description: ID документа
+ in: path
+ name: document_id
+ required: true
+ type: integer
+ - description: Полный желаемый набор атрибутов; пустой список очищает все атрибуты
+ документа
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/attribute.ReplaceRequest'
+ produces:
+ - application/json
+ responses:
+ "204":
+ description: Набор атрибутов документа полностью заменён
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ "422":
+ description: Unprocessable Entity
+ schema:
+ $ref: '#/definitions/apperrors.APIError422'
+ summary: Полностью заменить набор атрибутов документа
+ tags:
+ - attributes
+ /app/v1/documents/{document_id}/move_bundles:
+ patch:
+ consumes:
+ - application/json
+ description: |-
+ Переносит выбранные версии в целевой документ; исходные документы без версий удаляются. Возвращает идентификатор операции; Prefer: wait позволяет дождаться результата. Требуется право записи или администрирования в месте назначения; также доступно администратору соответствующего диска.
+ Для ожидания результата в том же запросе передайте заголовок Prefer: wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за это время получен итоговый статус операции, возвращается HTTP 200 с её результатом. HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время итоговый результат не получен возвращается HTTP 202 с operation_id, без результата операции; дальнейший статус проверяйте через GET /async-operations/{id} в том же контуре и версии API. Истечение времени ожидания не отменяет операцию.
+ parameters:
+ - description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
+ HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
+ проверки статуса
+ in: header
+ name: Prefer
+ type: string
+ - description: ID целевого документа
+ in: path
+ name: document_id
+ required: true
+ type: integer
+ - description: Идентификаторы версий документа
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/move.MoveBundlesRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: 'Итоговый статус получен за время Prefer: wait=N. Результат
+ операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
+ выполнения'
+ schema:
+ $ref: '#/definitions/move.StatusResponse'
+ "202":
+ description: 'Операция принята: возвращается operation_id без итогового
+ результата. Ожидание не запрошено либо итоговый результат не получен за
+ отведённое время'
+ schema:
+ $ref: '#/definitions/move.StartResponse'
+ "400":
+ description: Разные документы-источники / не загружен / гейт обработки
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Перенести версии в другой документ
+ tags:
+ - move
+ /app/v1/documents/{document_id}/permissions/:
+ post:
+ consumes:
+ - application/json
+ description: 'Заменяет права, назначенные непосредственно на документе указанному
+ в service_account получателю, полным набором из permissions. Новые права добавляются,
+ отсутствующие в переданном списке отзываются, совпадающие сохраняются. Передавайте
+ весь желаемый набор прав, а не только изменения. Пустой список permissions:
+ [] отзывает все прямые права этого получателя на документе. Права других получателей
+ и права, унаследованные от родительских папок, не изменяются; поэтому отзыв
+ прямых прав не обязательно лишает получателя доступа. Требуется право управления
+ доступом или администрирования документа; также доступно администратору диска.
+ При управлении доступом без прав администратора можно добавлять и отзывать
+ только те права, которыми обладает пользователь.'
+ parameters:
+ - description: ID документа
+ in: path
+ name: document_id
+ required: true
+ type: integer
+ - description: Получатель и полный желаемый набор прав; пустой список отзывает
+ все его прямые права на документе
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/permission.SetRequest'
+ produces:
+ - application/json
+ responses:
+ "204":
+ description: Прямые права получателя заменены переданным набором
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Полностью заменить набор прав на документ для указанного получателя
+ tags:
+ - permissions
+ /app/v1/documents/{document_id}/properties:
+ get:
+ parameters:
+ - description: ID документа
+ in: path
+ name: document_id
+ required: true
+ type: integer
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/document.FolderPropertiesOutput'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Свойства документа
+ tags:
+ - documents
+ /app/v1/documents/{document_id}/rename:
+ patch:
+ consumes:
+ - application/json
+ description: Изменяет имя документа или папки. Требуется право редактирования
+ или администрирования документа; также доступно администратору диска.
+ parameters:
+ - description: ID документа
+ in: path
+ name: document_id
+ required: true
+ type: integer
+ - description: Новое имя
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/document.RenameRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/document.RenameResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ "409":
+ description: Имя занято в папке
+ schema:
+ $ref: '#/definitions/apperrors.APIError409'
+ summary: Переименовать документ или папку
+ tags:
+ - documents
+ /app/v1/documents/{document_id}/update-path:
+ patch:
+ consumes:
+ - application/json
+ description: Изменяет родительскую папку. Требуется право записи или администрирования
+ исходного документа и право редактирования или администрирования папки назначения;
+ администратор соответствующего диска имеет доступ к объектам этого диска.
+ parameters:
+ - description: ID документа
+ in: path
+ name: document_id
+ required: true
+ type: integer
+ - description: Новый родитель
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/document.UpdatePathRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/document.UpdatePathResponse'
+ "400":
+ description: Между дисками/проектами / в своё поддерево
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ "409":
+ description: Conflict
+ schema:
+ $ref: '#/definitions/apperrors.APIError409'
+ summary: Переместить документ или папку
+ tags:
+ - documents
+ /app/v1/documents/{document_id}/workspace:
+ post:
+ description: Создаёт workspace, если отсутствует связь рабочей области и документа
+ в СОД. Требует storage.edit или storage.admin на документе.
+ parameters:
+ - description: ID документа
+ in: path
+ name: document_id
+ required: true
+ type: integer
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/document.CreateDocumentWorkspaceResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ "409":
+ description: Conflict
+ schema:
+ $ref: '#/definitions/apperrors.APIError409'
+ "502":
+ description: Bad Gateway
+ schema:
+ $ref: '#/definitions/apperrors.APIError502'
+ summary: Создать рабочую область документа
+ tags:
+ - documents
+ /app/v1/documents/{id}/copy:
+ post:
+ consumes:
+ - application/json
+ description: |-
+ Копирует документ либо папку с содержимым. exclude исключает выбранные ветки. options.conflict_policy определяет поведение при совпадении имени в папке назначения: skip (по умолчанию, в том числе при пустом значении) — пропустить документ или папку целиком со всем содержимым; as_copy — создать копию под первым свободным именем с суффиксом « copy», « copy 2», …, « copy 50». Например, при занятом имени «Проект» копия получит имя «Проект copy». Если все 50 вариантов заняты, элемент также пропускается. При отсутствии совпадения сохраняется исходное имя. Существующие документы и папки не перезаписываются и не объединяются. Возвращает идентификатор операции; Prefer: wait позволяет дождаться результата. Требуется право администрирования исходных документов и право записи или администрирования в папке назначения; администратор соответствующего диска имеет доступ к объектам этого диска.
+ Для ожидания результата в том же запросе передайте заголовок Prefer: wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за это время получен итоговый статус операции, возвращается HTTP 200 с её результатом. HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время итоговый результат не получен возвращается HTTP 202 с operation_id, без результата операции; дальнейший статус проверяйте через GET /async-operations/{id} в том же контуре и версии API. Истечение времени ожидания не отменяет операцию.
+ parameters:
+ - description: ID корня
+ in: path
+ name: id
+ required: true
+ type: integer
+ - description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
+ HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
+ проверки статуса
+ in: header
+ name: Prefer
+ type: string
+ - description: Параметры
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/copy.SubtreeRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: 'Итоговый статус получен за время Prefer: wait=N. Результат
+ операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
+ выполнения'
+ schema:
+ $ref: '#/definitions/move.StatusResponse'
+ "202":
+ description: 'Операция принята: возвращается operation_id без итогового
+ результата. Ожидание не запрошено либо итоговый результат не получен за
+ отведённое время'
+ schema:
+ $ref: '#/definitions/copy.StartResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "409":
+ description: Конфликт имён в назначении
+ schema:
+ $ref: '#/definitions/apperrors.APIError409'
+ summary: Скопировать документ или дерево папок
+ tags:
+ - copy
+ /app/v1/documents/bin:
+ delete:
+ parameters:
+ - description: Корневая папка
+ in: query
+ name: parent_id
+ required: true
+ type: integer
+ produces:
+ - application/json
+ responses:
+ "204":
+ description: Очищено
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ summary: Очистить корзину
+ tags:
+ - documents
+ /app/v1/documents/bin/restore:
+ patch:
+ parameters:
+ - description: Корневая папка
+ in: query
+ name: parent_id
+ required: true
+ type: integer
+ produces:
+ - application/json
+ responses:
+ "204":
+ description: Восстановлено
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ summary: Восстановить из корзины
+ tags:
+ - documents
+ /app/v1/documents/check-conflicts:
+ post:
+ consumes:
+ - application/json
+ description: Проверяет наличие одноимённых документов в указанных папках. Требуется
+ авторизация; отдельная проверка прав на документы не выполняется.
+ parameters:
+ - description: Кандидаты
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/s32d.CheckConflictsRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/s32d.CheckConflictsResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ summary: Проверить конфликты имён
+ tags:
+ - documents
+ /app/v1/documents/copy:
+ post:
+ consumes:
+ - application/json
+ description: |-
+ Копирует выбранные документы и папки с содержимым. Вложенные выбранные элементы копируются вместе с родительскими. options.conflict_policy определяет поведение при совпадении имени в папке назначения: skip (по умолчанию, в том числе при пустом значении) — пропустить документ или папку целиком со всем содержимым; as_copy — создать копию под первым свободным именем с суффиксом « copy», « copy 2», …, « copy 50». Например, при занятом имени «Проект» копия получит имя «Проект copy». Если все 50 вариантов заняты, элемент также пропускается. При отсутствии совпадения сохраняется исходное имя. Существующие документы и папки не перезаписываются и не объединяются. Возвращает идентификатор операции; Prefer: wait позволяет дождаться результата. Требуется право администрирования исходных документов и право записи или администрирования в папке назначения; администратор соответствующего диска имеет доступ к объектам этого диска.
+ Для ожидания результата в том же запросе передайте заголовок Prefer: wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за это время получен итоговый статус операции, возвращается HTTP 200 с её результатом. HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время итоговый результат не получен возвращается HTTP 202 с operation_id, без результата операции; дальнейший статус проверяйте через GET /async-operations/{id} в том же контуре и версии API. Истечение времени ожидания не отменяет операцию.
+ parameters:
+ - description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
+ HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
+ проверки статуса
+ in: header
+ name: Prefer
+ type: string
+ - description: Параметры
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/copy.SelectionRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: 'Итоговый статус получен за время Prefer: wait=N. Результат
+ операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
+ выполнения'
+ schema:
+ $ref: '#/definitions/move.StatusResponse'
+ "202":
+ description: 'Операция принята: возвращается operation_id без итогового
+ результата. Ожидание не запрошено либо итоговый результат не получен за
+ отведённое время'
+ schema:
+ $ref: '#/definitions/copy.StartResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "409":
+ description: Конфликт имён в назначении
+ schema:
+ $ref: '#/definitions/apperrors.APIError409'
+ summary: Скопировать выбранные документы и папки
+ tags:
+ - copy
+ /app/v1/documents/copy_structure:
+ post:
+ consumes:
+ - application/json
+ description: Создаёт копию исходной папки и её вложенных папок в месте назначения
+ без файлов. При copy_permissions=true также копирует действующие права доступа,
+ назначенные непосредственно каждой исходной папке. Унаследованные от родителей
+ источника права и права администраторов диска не копируются. По умолчанию
+ копирование прав выключено. Требуется право администрирования источника и
+ назначения; администратор соответствующего диска имеет доступ к объектам этого
+ диска.
+ parameters:
+ - description: Источник и цель
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/document.CopyStructureRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: Скопировано
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ summary: Скопировать структуру папок
+ tags:
+ - documents
+ /app/v1/documents/move:
+ post:
+ consumes:
+ - application/json
+ description: |-
+ Перемещает выбранные элементы, переименовывает или объединяет одноимённые документы согласно запросу. При объединении версии переходят в целевой документ, а исходный документ удаляется. Перенос между дисками или проектами запрещён. Требуется право записи или администрирования источника; право записи, редактирования или администрирования назначения. Для объединения требуется право записи или администрирования целевого документа. Администратор соответствующего диска имеет доступ к объектам этого диска. Возвращает идентификатор операции; Prefer: wait позволяет дождаться результата.
+ Для ожидания результата в том же запросе передайте заголовок Prefer: wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за это время получен итоговый статус операции, возвращается HTTP 200 с её результатом. HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время итоговый результат не получен возвращается HTTP 202 с operation_id, без результата операции; дальнейший статус проверяйте через GET /async-operations/{id} в том же контуре и версии API. Истечение времени ожидания не отменяет операцию.
+ parameters:
+ - description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
+ HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
+ проверки статуса
+ in: header
+ name: Prefer
+ type: string
+ - description: Манифест
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/move.MoveRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: 'Итоговый статус получен за время Prefer: wait=N. Результат
+ операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
+ выполнения'
+ schema:
+ $ref: '#/definitions/move.StatusResponse'
+ "202":
+ description: 'Операция принята: возвращается operation_id без итогового
+ результата. Ожидание не запрошено либо итоговый результат не получен за
+ отведённое время'
+ schema:
+ $ref: '#/definitions/move.StartResponse'
+ "400":
+ description: Смешение файлов и папок / между дисками/проектами / невалидный
+ union
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "409":
+ description: Конфликты имён в назначении
+ schema:
+ $ref: '#/definitions/apperrors.APIError409'
+ summary: Переместить документы и папки
+ tags:
+ - move
+ /app/v1/documents/public_link/:
+ post:
+ consumes:
+ - application/json
+ description: Создаёт ссылку на последнюю, указанную или последнюю согласованную
+ версию документа. Можно задать срок действия. Требуется право создания публичных
+ ссылок или администрирования документа; также доступно администратору диска.
+ parameters:
+ - description: Параметры
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/publiclink.CreateRequest'
+ produces:
+ - application/json
+ responses:
+ "201":
+ description: Created
+ schema:
+ $ref: '#/definitions/publiclink.CreateOutput'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Создать публичную ссылку
+ tags:
+ - public-links
+ /app/v1/documents/public_link/{id}:
+ delete:
+ parameters:
+ - description: ID ссылки
+ in: path
+ name: id
+ required: true
+ type: integer
+ produces:
+ - application/json
+ responses:
+ "204":
+ description: Удалена
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Удалить публичную ссылку
+ tags:
+ - public-links
+ patch:
+ consumes:
+ - application/json
+ description: Меняет параметры ссылки. Отсутствующие поля сохраняются; expires_at=null
+ отменяет ограничение срока действия. Требуется право создания публичных ссылок
+ или администрирования документа; также доступно администратору диска.
+ parameters:
+ - description: ID ссылки
+ in: path
+ name: id
+ required: true
+ type: string
+ - description: Изменения
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/publiclink.UpdateRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/publiclink.UpdateOutput'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Изменить публичную ссылку
+ tags:
+ - public-links
+ /app/v1/documents/update-path:
+ patch:
+ consumes:
+ - application/json
+ description: Изменяет родительскую папку выбранных документов. Документы, для
+ которых недостаточно прав, пропускаются. Требуется право записи или администрирования
+ исходного документа и право редактирования или администрирования папки назначения;
+ администратор соответствующего диска имеет доступ к объектам этого диска.
+ parameters:
+ - description: Список документов и родитель
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/document.BulkUpdatePathRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/document.BulkUpdatePathResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Переместить несколько документов
+ tags:
+ - documents
+ /app/v1/links/:
+ post:
+ consumes:
+ - application/json
+ description: Создаёт ссылку на существующий документ в выбранной папке. Требуется
+ право записи или администрирования и на документ, и на папку назначения; администратор
+ соответствующего диска имеет доступ к объектам этого диска.
+ parameters:
+ - description: Параметры
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/link.CreateRequest'
+ produces:
+ - application/json
+ responses:
+ "201":
+ description: Created
+ schema:
+ $ref: '#/definitions/link.CreateOutput'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "409":
+ description: Имя занято / линк уже есть
+ schema:
+ $ref: '#/definitions/apperrors.APIError409'
+ "422":
+ description: Цель — линк или папка
+ schema:
+ $ref: '#/definitions/apperrors.APIError422'
+ summary: Создать ссылку на документ в папке
+ tags:
+ - links
+ /app/v1/marks/:
+ get:
+ description: Возвращает последнюю статистику по занимаемому пространству компанией
+ если она есть
+ parameters:
+ - description: Идентификатор компании
+ in: query
+ name: company_id
+ required: true
+ type: integer
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/sizer.getLatestStatResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Последняя статистика компании по занимаемому пространству если она
+ есть
+ tags:
+ - sizer
+ /app/v1/marks/delete:
+ post:
+ consumes:
+ - application/json
+ description: Удаляет указанные маркировки если они принадлежат одной версии
+ документа
+ parameters:
+ - description: Параметры удаления
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/mark.deleteMarksRequest'
+ responses:
+ "204":
+ description: No Content
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ summary: Удалить маркировки
+ tags:
+ - marks
+ /app/v1/s32d/sessions/:
+ get:
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/s32d.ListSessionsResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Список S32D-сессий
+ tags:
+ - s32d
+ post:
+ consumes:
+ - application/json
+ description: Создаёт сессию конвертации архива страниц в документы.
+ parameters:
+ - description: Параметры
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/s32d.CreateSessionRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/s32d.CreateSessionResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Создать S32D-сессию
+ tags:
+ - s32d
+ /app/v1/s32d/sessions/{session_id}:
+ delete:
+ parameters:
+ - description: UUID сессии
+ in: path
+ name: session_id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "204":
+ description: Удалена
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Удалить S32D-сессию
+ tags:
+ - s32d
+ /app/v1/s32d/sessions/{session_id}/archive:
+ put:
+ consumes:
+ - application/octet-stream
+ description: Архив сырым телом (application/octet-stream).
+ parameters:
+ - description: UUID сессии
+ in: path
+ name: session_id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/s32d.UploadArchiveResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Загрузить архив сессии
+ tags:
+ - s32d
+ /app/v1/s32d/sessions/{session_id}/archive/multipart:
+ post:
+ parameters:
+ - description: UUID сессии
+ in: path
+ name: session_id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/s32d.InitMultipartResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Начать multipart-загрузку архива
+ tags:
+ - s32d
+ /app/v1/s32d/sessions/{session_id}/archive/multipart/{upload_id}/complete:
+ post:
+ parameters:
+ - description: UUID сессии
+ in: path
+ name: session_id
+ required: true
+ type: string
+ - description: UUID загрузки
+ in: path
+ name: upload_id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: Завершена
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Завершить multipart-загрузку архива
+ tags:
+ - s32d
+ /app/v1/s32d/sessions/{session_id}/archive/multipart/{upload_id}/parts/{part_number}:
+ put:
+ consumes:
+ - application/octet-stream
+ description: Часть сырым телом.
+ parameters:
+ - description: UUID сессии
+ in: path
+ name: session_id
+ required: true
+ type: string
+ - description: UUID загрузки
+ in: path
+ name: upload_id
+ required: true
+ type: string
+ - description: Номер части
+ in: path
+ name: part_number
+ required: true
+ type: integer
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/s32d.UploadPartResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Загрузить часть архива
+ tags:
+ - s32d
+ /app/v1/s32d/sessions/{session_id}/cancel:
+ post:
+ parameters:
+ - description: UUID сессии
+ in: path
+ name: session_id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: Отменена
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Отменить S32D-сессию
+ tags:
+ - s32d
+ /app/v1/s32d/sessions/{session_id}/process:
+ post:
+ description: Стартует BPMN-процесс разбора загруженного архива.
+ parameters:
+ - description: UUID сессии
+ in: path
+ name: session_id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/s32d.ProcessSessionResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Запустить обработку сессии
+ tags:
+ - s32d
+ /app/v1/s32d/sessions/{session_id}/retry:
+ post:
+ parameters:
+ - description: UUID сессии
+ in: path
+ name: session_id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: Перезапущена
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Повторить упавшую сессию
+ tags:
+ - s32d
+ /app/v1/s32d/sessions/{session_id}/status:
+ get:
+ parameters:
+ - description: UUID сессии
+ in: path
+ name: session_id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/s32d.SessionStatusResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Статус S32D-сессии
+ tags:
+ - s32d
+ /app/v1/uploads/multipart/{upload_id}/{part_number}:
+ post:
+ consumes:
+ - application/octet-stream
+ description: 'Часть файла передаётся в теле запроса с Content-Type: application/octet-stream
+ и Content-Length. Размер каждой части, кроме последней, должен быть не менее
+ 5 МиБ. Диск должен принадлежать одной из компаний пользователя, указанных
+ в токене.'
+ parameters:
+ - description: UUID загрузки
+ in: path
+ name: upload_id
+ required: true
+ type: string
+ - description: Номер части (с 1)
+ in: path
+ name: part_number
+ required: true
+ type: integer
+ - description: Байты файла в теле запроса, без JSON-обёртки и кодирования Base64
+ in: body
+ name: content
+ required: true
+ schema:
+ type: string
+ - description: Размер тела запроса в байтах
+ format: int64
+ in: header
+ minimum: 1
+ name: Content-Length
+ required: true
+ type: integer
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/upload.UploadPartResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Загрузить часть файла
+ tags:
+ - uploads
+ /app/v1/uploads/multipart/{upload_id}/abort:
+ post:
+ description: Отменяет незавершённую загрузку и удаляет её части. Диск должен
+ принадлежать одной из компаний пользователя, указанных в токене.
+ parameters:
+ - description: UUID загрузки
+ in: path
+ name: upload_id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/upload.MultipartFinishedResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Отменить загрузку файла по частям
+ tags:
+ - uploads
+ /app/v1/uploads/multipart/{upload_id}/complete:
+ post:
+ description: Собирает загруженные части в файл версии документа. Диск должен
+ принадлежать одной из компаний пользователя, указанных в токене.
+ parameters:
+ - description: UUID загрузки
+ in: path
+ name: upload_id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/upload.MultipartFinishedResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Завершить загрузку файла по частям
+ tags:
+ - uploads
+ /app/v1/workspaces:
+ post:
+ consumes:
+ - application/json
+ description: Создаёт документ типа workspace и воркспейс во внешнем сервисе
+ для набора документов.
+ parameters:
+ - description: Параметры
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/document.CreateWorkspaceNodeRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/document.CreateWorkspaceNodeResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ "409":
+ description: Conflict
+ schema:
+ $ref: '#/definitions/apperrors.APIError409'
+ summary: Создать workspace-документ
+ tags:
+ - documents
+ /external/v1/async-operations:
+ get:
+ description: Возвращает активные и недавно завершённые операции копирования
+ и переноса. Доступны только собственные операции пользователя.
+ parameters:
+ - description: 'Фильтр по типу: copy|move|move_bundles'
+ in: query
+ name: type
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/move.OperationListResponse'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ summary: Получить список операций
+ tags:
+ - async-operations
+ /external/v1/async-operations/{id}:
+ get:
+ description: Возвращает состояние, прогресс и результаты копирования или переноса.
+ Доступно только создателю операции.
+ parameters:
+ - description: UUID операции
+ in: path
+ name: id
+ required: true
+ type: string
+ - description: 'copy: размер страницы items (default 1000)'
+ in: query
+ name: items_limit
+ type: integer
+ - description: 'copy: смещение'
+ in: query
+ name: items_offset
+ type: integer
+ - description: 'copy: фильтр pending|running|done|skipped|failed'
+ in: query
+ name: items_status
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/move.StatusResponse'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Получить состояние операции
+ tags:
+ - async-operations
+ /external/v1/async-operations/{id}/cancel:
+ post:
+ description: Запрашивает отмену копирования или переноса. Уже выполненные изменения
+ не откатываются. Если копирование достигло этапа публикации результата, возвращается
+ 409. Доступно только создателю операции.
+ parameters:
+ - description: UUID операции
+ in: path
+ name: id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "202":
+ description: Отмена запрошена
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ "409":
+ description: Conflict
+ schema:
+ $ref: '#/definitions/apperrors.APIError409'
+ summary: Отменить операцию
+ tags:
+ - async-operations
+ /external/v1/bundles/:
+ post:
+ consumes:
+ - application/json
+ description: Создаёт версию и возвращает параметры для загрузки её файлов. Диск
+ должен принадлежать одной из компаний пользователя, указанных в токене.
+ parameters:
+ - description: Параметры версии документа
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/bundle.CreateRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/bundle.CreateResponse'
+ "400":
+ description: Некорректное тело / диск не найден
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "422":
+ description: Ключи не подходят типу версии / расширение имени
+ schema:
+ $ref: '#/definitions/apperrors.APIError422'
+ summary: Создать версию документа
+ tags:
+ - bundles
+ /external/v1/bundles/{bundle_id}/{key}/upload_multipart:
+ post:
+ description: Возвращает идентификатор загрузки и адрес для отправки частей в
+ той же версии API. Диск должен принадлежать одной из компаний пользователя,
+ указанных в токене.
+ parameters:
+ - description: Идентификатор версии документа
+ in: path
+ name: bundle_id
+ required: true
+ type: string
+ - description: Ключ файла версии
+ in: path
+ name: key
+ required: true
+ type: string
+ - description: Относительный путь файла в наборе файлов версии; только для типа
+ folder
+ in: query
+ name: path
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/upload.StartMultipartResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Начать загрузку файла по частям
+ tags:
+ - uploads
+ /external/v1/bundles/{bundle_id}/{key}/upload_single:
+ post:
+ consumes:
+ - application/octet-stream
+ description: 'Файл передаётся в теле запроса с Content-Type: application/octet-stream
+ и Content-Length. Формат multipart/form-data не поддерживается. Диск должен
+ принадлежать одной из компаний пользователя, указанных в токене.'
+ parameters:
+ - description: Идентификатор версии документа
+ in: path
+ name: bundle_id
+ required: true
+ type: string
+ - description: Ключ файла версии
+ in: path
+ name: key
+ required: true
+ type: string
+ - description: Относительный путь файла в наборе файлов версии; только для типа
+ folder
+ in: query
+ name: path
+ type: string
+ - description: Имя файла
+ in: query
+ name: filename
+ type: string
+ - description: Байты файла в теле запроса, без JSON-обёртки и кодирования Base64
+ in: body
+ name: content
+ required: true
+ schema:
+ type: string
+ - description: Размер тела запроса в байтах
+ format: int64
+ in: header
+ minimum: 1
+ name: Content-Length
+ required: true
+ type: integer
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/upload.UploadSingleResponse'
+ "400":
+ description: Форма вместо raw / нет Content-Length
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Загрузить файл версии одним запросом
+ tags:
+ - uploads
+ /external/v1/bundles/{bundle_id}/author:
+ patch:
+ consumes:
+ - application/json
+ description: Назначает нового автора указанной версии документа. Требуется право
+ редактирования или администрирования документа; также доступно администратору
+ диска.
+ parameters:
+ - description: Идентификатор UUID формата версии документа
+ in: path
+ name: bundle_id
+ required: true
+ type: string
+ - description: Новый автор
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/bundle.ChangeAuthorRequest'
+ produces:
+ - application/json
+ responses:
+ "204":
+ description: No Content
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Сменить автора версии документа
+ tags:
+ - bundles
+ /external/v1/bundles/{bundle_id}/mark:
+ post:
+ consumes:
+ - application/json
+ description: Наносит маркировку на существующую или новую версию документа.
+ Достаточно права на один из запрошенных видов маркировки либо права администрирования
+ документа; также доступно администратору диска.
+ parameters:
+ - description: Идентификатор формата UUID версии документа
+ in: path
+ name: bundle_id
+ required: true
+ type: string
+ - description: Определения марок
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/bundle.markExternalBundleRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/bundle.markBundleResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Нанести QR-код, штамп или электронную подпись
+ tags:
+ - bundles
+ /external/v1/bundles/{bundle_id}/presign:
+ get:
+ description: Возвращает хеш файла версии для формирования электронной подписи.
+ Требуется право электронной подписи или администрирования документа; также
+ доступно администратору диска.
+ parameters:
+ - description: Идентификатор формата UUID версии документа
+ in: path
+ name: bundle_id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/bundle.PresignResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Подготовить версию к электронной подписи
+ tags:
+ - bundles
+ /external/v1/bundles/{bundle_id}/upload_finish:
+ post:
+ description: Подтверждает завершение загрузки всех файлов версии. Диск должен
+ принадлежать одной из компаний пользователя, указанных в токене.
+ parameters:
+ - description: Идентификатор версии документа
+ in: path
+ name: bundle_id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/bundle.CompleteUploadResponse'
+ "400":
+ description: Некорректный bundle_id / контент не залит
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Версия не найдена
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Завершить загрузку версии документа
+ tags:
+ - bundles
+ /external/v1/bundles/copy:
+ post:
+ consumes:
+ - application/json
+ description: |-
+ Создаёт новый документ на основе выбранной версии. Возвращает идентификатор операции; Prefer: wait заголовок позволяет дождаться результата в течение выбранного количества секунд в том же запросе, вместо того, чтобы отслеживать статус через API асинхронных операций. Требуется право записи или администрирования в месте назначения; также доступно администратору соответствующего диска.
+ Для ожидания результата в том же запросе передайте заголовок Prefer: wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за это время получен итоговый статус операции, возвращается HTTP 200 с её результатом. HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время итоговый результат не получен возвращается HTTP 202 с operation_id, без результата операции; дальнейший статус проверяйте через GET /async-operations/{id} в том же контуре и версии API. Истечение времени ожидания не отменяет операцию.
+ parameters:
+ - description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
+ HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
+ проверки статуса
+ in: header
+ name: Prefer
+ type: string
+ - description: Параметры
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/copy.NewDocumentRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: 'Итоговый статус получен за время Prefer: wait=N. Результат
+ операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
+ выполнения'
+ schema:
+ $ref: '#/definitions/move.StatusResponse'
+ "202":
+ description: 'Операция принята: возвращается operation_id без итогового
+ результата. Ожидание не запрошено либо итоговый результат не получен за
+ отведённое время'
+ schema:
+ $ref: '#/definitions/copy.StartResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "409":
+ description: Конфликт имён в назначении
+ schema:
+ $ref: '#/definitions/apperrors.APIError409'
+ summary: Скопировать версию в новый документ
+ tags:
+ - copy
+ /external/v1/bundles/copy-to-document:
+ post:
+ consumes:
+ - application/json
+ description: |-
+ Добавляет копию версии в другой документ. Копирование BIM-версий этим способом не поддерживается. Возвращает идентификатор операции; Prefer: wait позволяет дождаться результата в том же запросе, если операция не успела завершиться за это время, то возвращает статус создания асинхронной операции, а не ее результат. Требуется право записи или администрирования в месте назначения; также доступно администратору соответствующего диска.
+ Для ожидания результата в том же запросе передайте заголовок Prefer: wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за это время получен итоговый статус операции, возвращается HTTP 200 с её результатом. HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время итоговый результат не получен возвращается HTTP 202 с operation_id, без результата операции; дальнейший статус проверяйте через GET /async-operations/{id} в том же контуре и версии API. Истечение времени ожидания не отменяет операцию.
+ parameters:
+ - description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
+ HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
+ проверки статуса
+ in: header
+ name: Prefer
+ type: string
+ - description: Параметры
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/copy.ToDocumentRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: 'Итоговый статус получен за время Prefer: wait=N. Результат
+ операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
+ выполнения'
+ schema:
+ $ref: '#/definitions/move.StatusResponse'
+ "202":
+ description: 'Операция принята: возвращается operation_id без итогового
+ результата. Ожидание не запрошено либо итоговый результат не получен за
+ отведённое время'
+ schema:
+ $ref: '#/definitions/copy.StartResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "409":
+ description: Конфликт имён в назначении
+ schema:
+ $ref: '#/definitions/apperrors.APIError409'
+ summary: Скопировать версию в существующий документ
+ tags:
+ - copy
+ /external/v1/documents/:
+ post:
+ consumes:
+ - application/json
+ description: Для проекта требуется право администрирования родительской папки;
+ для папки — записи или администрирования; для документа — загрузки, записи
+ или администрирования. Также доступно администратору диска. Диск должен принадлежать
+ одной из компаний пользователя, указанных в токене.
+ parameters:
+ - description: Параметры документа
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/document.CreateRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/document.CreateResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Родитель не найден
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ "409":
+ description: Имя занято
+ schema:
+ $ref: '#/definitions/apperrors.APIError409'
+ summary: Создать документ, папку или проект
+ tags:
+ - documents
+ /external/v1/documents/{document_id}/add_bundle:
+ post:
+ consumes:
+ - application/json
+ description: Привязывает загруженную версию к документу. Требуется право загрузки,
+ записи или администрирования документа; также доступно администратору диска.
+ parameters:
+ - description: ID документа
+ in: path
+ name: document_id
+ required: true
+ type: integer
+ - description: Идентификатор версии документа
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/document.AddBundleRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/document.AddBundleResponse'
+ "400":
+ description: Версия уже привязана к документу или ещё не загружена
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Добавить версию в документ
+ tags:
+ - documents
+ /external/v1/documents/{document_id}/author:
+ patch:
+ consumes:
+ - application/json
+ description: Назначает нового автора документа; при include_bundles=true также
+ меняет автора всех его версий. Требуется право редактирования или администрирования
+ документа; также доступно администратору диска.
+ parameters:
+ - description: ID документа
+ in: path
+ name: document_id
+ required: true
+ type: integer
+ - description: Новый автор; include_bundles=true также меняет автора всех версий
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/document.ChangeAuthorRequest'
+ produces:
+ - application/json
+ responses:
+ "204":
+ description: No Content
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Сменить автора документа
+ tags:
+ - documents
+ /external/v1/documents/{document_id}/move_bundles:
+ patch:
+ consumes:
+ - application/json
+ description: |-
+ Переносит выбранные версии в целевой документ; исходные документы без версий удаляются. Возвращает идентификатор операции; Prefer: wait позволяет дождаться результата. Требуется право записи или администрирования в месте назначения; также доступно администратору соответствующего диска.
+ Для ожидания результата в том же запросе передайте заголовок Prefer: wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за это время получен итоговый статус операции, возвращается HTTP 200 с её результатом. HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время итоговый результат не получен возвращается HTTP 202 с operation_id, без результата операции; дальнейший статус проверяйте через GET /async-operations/{id} в том же контуре и версии API. Истечение времени ожидания не отменяет операцию.
+ parameters:
+ - description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
+ HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
+ проверки статуса
+ in: header
+ name: Prefer
+ type: string
+ - description: ID целевого документа
+ in: path
+ name: document_id
+ required: true
+ type: integer
+ - description: Идентификаторы версий документа
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/move.MoveBundlesRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: 'Итоговый статус получен за время Prefer: wait=N. Результат
+ операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
+ выполнения'
+ schema:
+ $ref: '#/definitions/move.StatusResponse'
+ "202":
+ description: 'Операция принята: возвращается operation_id без итогового
+ результата. Ожидание не запрошено либо итоговый результат не получен за
+ отведённое время'
+ schema:
+ $ref: '#/definitions/move.StartResponse'
+ "400":
+ description: Разные документы-источники / не загружен / гейт обработки
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Перенести версии в другой документ
+ tags:
+ - move
+ /external/v1/documents/{document_id}/permissions/:
+ post:
+ consumes:
+ - application/json
+ description: 'Заменяет права, назначенные непосредственно на документе указанному
+ в service_account получателю, полным набором из permissions. Новые права добавляются,
+ отсутствующие в переданном списке отзываются, совпадающие сохраняются. Передавайте
+ весь желаемый набор прав, а не только изменения. Пустой список permissions:
+ [] отзывает все прямые права этого получателя на документе. Права других получателей
+ и права, унаследованные от родительских папок, не изменяются; поэтому отзыв
+ прямых прав не обязательно лишает получателя доступа. Требуется право управления
+ доступом или администрирования документа; также доступно администратору диска.
+ При управлении доступом без прав администратора можно добавлять и отзывать
+ только те права, которыми обладает пользователь.'
+ parameters:
+ - description: ID документа
+ in: path
+ name: document_id
+ required: true
+ type: integer
+ - description: Получатель и полный желаемый набор прав; пустой список отзывает
+ все его прямые права на документе
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/permission.SetRequest'
+ produces:
+ - application/json
+ responses:
+ "204":
+ description: Прямые права получателя заменены переданным набором
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Полностью заменить набор прав на документ для указанного получателя
+ tags:
+ - permissions
+ /external/v1/documents/{id}/copy:
+ post:
+ consumes:
+ - application/json
+ description: |-
+ Копирует документ либо папку с содержимым. exclude исключает выбранные ветки. options.conflict_policy определяет поведение при совпадении имени в папке назначения: skip (по умолчанию, в том числе при пустом значении) — пропустить документ или папку целиком со всем содержимым; as_copy — создать копию под первым свободным именем с суффиксом « copy», « copy 2», …, « copy 50». Например, при занятом имени «Проект» копия получит имя «Проект copy». Если все 50 вариантов заняты, элемент также пропускается. При отсутствии совпадения сохраняется исходное имя. Существующие документы и папки не перезаписываются и не объединяются. Возвращает идентификатор операции; Prefer: wait позволяет дождаться результата. Требуется право администрирования исходных документов и право записи или администрирования в папке назначения; администратор соответствующего диска имеет доступ к объектам этого диска.
+ Для ожидания результата в том же запросе передайте заголовок Prefer: wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за это время получен итоговый статус операции, возвращается HTTP 200 с её результатом. HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время итоговый результат не получен возвращается HTTP 202 с operation_id, без результата операции; дальнейший статус проверяйте через GET /async-operations/{id} в том же контуре и версии API. Истечение времени ожидания не отменяет операцию.
+ parameters:
+ - description: ID корня
+ in: path
+ name: id
+ required: true
+ type: integer
+ - description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
+ HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
+ проверки статуса
+ in: header
+ name: Prefer
+ type: string
+ - description: Параметры
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/copy.SubtreeRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: 'Итоговый статус получен за время Prefer: wait=N. Результат
+ операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
+ выполнения'
+ schema:
+ $ref: '#/definitions/move.StatusResponse'
+ "202":
+ description: 'Операция принята: возвращается operation_id без итогового
+ результата. Ожидание не запрошено либо итоговый результат не получен за
+ отведённое время'
+ schema:
+ $ref: '#/definitions/copy.StartResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "409":
+ description: Конфликт имён в назначении
+ schema:
+ $ref: '#/definitions/apperrors.APIError409'
+ summary: Скопировать документ или дерево папок
+ tags:
+ - copy
+ /external/v1/documents/check-conflicts:
+ post:
+ consumes:
+ - application/json
+ description: Проверяет наличие одноимённых документов в указанных папках. Требуется
+ авторизация; отдельная проверка прав на документы не выполняется.
+ parameters:
+ - description: Кандидаты
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/s32d.CheckConflictsRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/s32d.CheckConflictsResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ summary: Проверить конфликты имён
+ tags:
+ - documents
+ /external/v1/documents/copy:
+ post:
+ consumes:
+ - application/json
+ description: |-
+ Копирует выбранные документы и папки с содержимым. Вложенные выбранные элементы копируются вместе с родительскими. options.conflict_policy определяет поведение при совпадении имени в папке назначения: skip (по умолчанию, в том числе при пустом значении) — пропустить документ или папку целиком со всем содержимым; as_copy — создать копию под первым свободным именем с суффиксом « copy», « copy 2», …, « copy 50». Например, при занятом имени «Проект» копия получит имя «Проект copy». Если все 50 вариантов заняты, элемент также пропускается. При отсутствии совпадения сохраняется исходное имя. Существующие документы и папки не перезаписываются и не объединяются. Возвращает идентификатор операции; Prefer: wait позволяет дождаться результата. Требуется право администрирования исходных документов и право записи или администрирования в папке назначения; администратор соответствующего диска имеет доступ к объектам этого диска.
+ Для ожидания результата в том же запросе передайте заголовок Prefer: wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за это время получен итоговый статус операции, возвращается HTTP 200 с её результатом. HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время итоговый результат не получен возвращается HTTP 202 с operation_id, без результата операции; дальнейший статус проверяйте через GET /async-operations/{id} в том же контуре и версии API. Истечение времени ожидания не отменяет операцию.
+ parameters:
+ - description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
+ HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
+ проверки статуса
+ in: header
+ name: Prefer
+ type: string
+ - description: Параметры
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/copy.SelectionRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: 'Итоговый статус получен за время Prefer: wait=N. Результат
+ операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
+ выполнения'
+ schema:
+ $ref: '#/definitions/move.StatusResponse'
+ "202":
+ description: 'Операция принята: возвращается operation_id без итогового
+ результата. Ожидание не запрошено либо итоговый результат не получен за
+ отведённое время'
+ schema:
+ $ref: '#/definitions/copy.StartResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "409":
+ description: Конфликт имён в назначении
+ schema:
+ $ref: '#/definitions/apperrors.APIError409'
+ summary: Скопировать выбранные документы и папки
+ tags:
+ - copy
+ /external/v1/documents/move:
+ post:
+ consumes:
+ - application/json
+ description: |-
+ Перемещает выбранные элементы, переименовывает или объединяет одноимённые документы согласно запросу. При объединении версии переходят в целевой документ, а исходный документ удаляется. Перенос между дисками или проектами запрещён. Требуется право записи или администрирования источника; право записи, редактирования или администрирования назначения. Для объединения требуется право записи или администрирования целевого документа. Администратор соответствующего диска имеет доступ к объектам этого диска. Возвращает идентификатор операции; Prefer: wait позволяет дождаться результата.
+ Для ожидания результата в том же запросе передайте заголовок Prefer: wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за это время получен итоговый статус операции, возвращается HTTP 200 с её результатом. HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время итоговый результат не получен возвращается HTTP 202 с operation_id, без результата операции; дальнейший статус проверяйте через GET /async-operations/{id} в том же контуре и версии API. Истечение времени ожидания не отменяет операцию.
+ parameters:
+ - description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
+ HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
+ проверки статуса
+ in: header
+ name: Prefer
+ type: string
+ - description: Манифест
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/move.MoveRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: 'Итоговый статус получен за время Prefer: wait=N. Результат
+ операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
+ выполнения'
+ schema:
+ $ref: '#/definitions/move.StatusResponse'
+ "202":
+ description: 'Операция принята: возвращается operation_id без итогового
+ результата. Ожидание не запрошено либо итоговый результат не получен за
+ отведённое время'
+ schema:
+ $ref: '#/definitions/move.StartResponse'
+ "400":
+ description: Смешение файлов и папок / между дисками/проектами / невалидный
+ union
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "409":
+ description: Конфликты имён в назначении
+ schema:
+ $ref: '#/definitions/apperrors.APIError409'
+ summary: Переместить документы и папки
+ tags:
+ - move
+ /external/v1/uploads/multipart/{upload_id}/{part_number}:
+ post:
+ consumes:
+ - application/octet-stream
+ description: 'Часть файла передаётся в теле запроса с Content-Type: application/octet-stream
+ и Content-Length. Размер каждой части, кроме последней, должен быть не менее
+ 5 МиБ. Диск должен принадлежать одной из компаний пользователя, указанных
+ в токене.'
+ parameters:
+ - description: UUID загрузки
+ in: path
+ name: upload_id
+ required: true
+ type: string
+ - description: Номер части (с 1)
+ in: path
+ name: part_number
+ required: true
+ type: integer
+ - description: Байты файла в теле запроса, без JSON-обёртки и кодирования Base64
+ in: body
+ name: content
+ required: true
+ schema:
+ type: string
+ - description: Размер тела запроса в байтах
+ format: int64
+ in: header
+ minimum: 1
+ name: Content-Length
+ required: true
+ type: integer
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/upload.UploadPartResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Загрузить часть файла
+ tags:
+ - uploads
+ /external/v1/uploads/multipart/{upload_id}/abort:
+ post:
+ description: Отменяет незавершённую загрузку и удаляет её части. Диск должен
+ принадлежать одной из компаний пользователя, указанных в токене.
+ parameters:
+ - description: UUID загрузки
+ in: path
+ name: upload_id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/upload.MultipartFinishedResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Отменить загрузку файла по частям
+ tags:
+ - uploads
+ /external/v1/uploads/multipart/{upload_id}/complete:
+ post:
+ description: Собирает загруженные части в файл версии документа. Диск должен
+ принадлежать одной из компаний пользователя, указанных в токене.
+ parameters:
+ - description: UUID загрузки
+ in: path
+ name: upload_id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/upload.MultipartFinishedResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Завершить загрузку файла по частям
+ tags:
+ - uploads
+ /external/v2/async-operations:
+ get:
+ description: Возвращает активные и недавно завершённые операции копирования
+ и переноса. Доступны только собственные операции пользователя.
+ parameters:
+ - description: 'Фильтр по типу: copy|move|move_bundles'
+ in: query
+ name: type
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/move.OperationListResponse'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ summary: Получить список операций
+ tags:
+ - async-operations
+ /external/v2/async-operations/{id}:
+ get:
+ description: Возвращает состояние, прогресс и результаты копирования или переноса.
+ Доступно только создателю операции.
+ parameters:
+ - description: UUID операции
+ in: path
+ name: id
+ required: true
+ type: string
+ - description: 'copy: размер страницы items (default 1000)'
+ in: query
+ name: items_limit
+ type: integer
+ - description: 'copy: смещение'
+ in: query
+ name: items_offset
+ type: integer
+ - description: 'copy: фильтр pending|running|done|skipped|failed'
+ in: query
+ name: items_status
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/move.StatusResponse'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Получить состояние операции
+ tags:
+ - async-operations
+ /external/v2/async-operations/{id}/cancel:
+ post:
+ description: Запрашивает отмену копирования или переноса. Уже выполненные изменения
+ не откатываются. Если копирование достигло этапа публикации результата, возвращается
+ 409. Доступно только создателю операции.
+ parameters:
+ - description: UUID операции
+ in: path
+ name: id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "202":
+ description: Отмена запрошена
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ "409":
+ description: Conflict
+ schema:
+ $ref: '#/definitions/apperrors.APIError409'
+ summary: Отменить операцию
+ tags:
+ - async-operations
+ /external/v2/bundles:
+ post:
+ consumes:
+ - application/json
+ description: Создаёт версию и возвращает параметры для загрузки её файлов. Диск
+ должен принадлежать одной из компаний пользователя, указанных в токене.
+ parameters:
+ - description: Параметры версии документа
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/bundle.CreateRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/bundle.CreateResponse'
+ "400":
+ description: Некорректное тело / диск не найден
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "422":
+ description: Ключи не подходят типу версии / расширение имени
+ schema:
+ $ref: '#/definitions/apperrors.APIError422'
+ summary: Создать версию документа
+ tags:
+ - bundles
+ /external/v2/bundles/{bundle_id}/{key}/upload_multipart:
+ post:
+ description: Возвращает идентификатор загрузки и адрес для отправки частей в
+ той же версии API. Диск должен принадлежать одной из компаний пользователя,
+ указанных в токене.
+ parameters:
+ - description: Идентификатор версии документа
+ in: path
+ name: bundle_id
+ required: true
+ type: string
+ - description: Ключ файла версии
+ in: path
+ name: key
+ required: true
+ type: string
+ - description: Относительный путь файла в наборе файлов версии; только для типа
+ folder
+ in: query
+ name: path
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/upload.StartMultipartResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Начать загрузку файла по частям
+ tags:
+ - uploads
+ /external/v2/bundles/{bundle_id}/{key}/upload_single:
+ post:
+ consumes:
+ - application/octet-stream
+ description: 'Файл передаётся в теле запроса с Content-Type: application/octet-stream
+ и Content-Length. Формат multipart/form-data не поддерживается. Диск должен
+ принадлежать одной из компаний пользователя, указанных в токене.'
+ parameters:
+ - description: Идентификатор версии документа
+ in: path
+ name: bundle_id
+ required: true
+ type: string
+ - description: Ключ файла версии
+ in: path
+ name: key
+ required: true
+ type: string
+ - description: Относительный путь файла в наборе файлов версии; только для типа
+ folder
+ in: query
+ name: path
+ type: string
+ - description: Имя файла
+ in: query
+ name: filename
+ type: string
+ - description: Байты файла в теле запроса, без JSON-обёртки и кодирования Base64
+ in: body
+ name: content
+ required: true
+ schema:
+ type: string
+ - description: Размер тела запроса в байтах
+ format: int64
+ in: header
+ minimum: 1
+ name: Content-Length
+ required: true
+ type: integer
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/upload.UploadSingleResponse'
+ "400":
+ description: Форма вместо raw / нет Content-Length
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Загрузить файл версии одним запросом
+ tags:
+ - uploads
+ /external/v2/bundles/{bundle_id}/author:
+ patch:
+ consumes:
+ - application/json
+ description: Назначает нового автора указанной версии документа. Требуется право
+ редактирования или администрирования документа; также доступно администратору
+ диска.
+ parameters:
+ - description: Идентификатор UUID формата версии документа
+ in: path
+ name: bundle_id
+ required: true
+ type: string
+ - description: Новый автор
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/bundle.ChangeAuthorRequest'
+ produces:
+ - application/json
+ responses:
+ "204":
+ description: No Content
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Сменить автора версии документа
+ tags:
+ - bundles
+ /external/v2/bundles/{bundle_id}/cancel_qr:
+ post:
+ description: Аннулирует QR-код указанной версии. Требуется право нанесения QR-кода
+ или администрирования документа; также доступно администратору диска.
+ parameters:
+ - description: Идентификатор версии документа
+ in: path
+ name: bundle_id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "204":
+ description: Аннулирован
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Аннулировать QR-код версии документа
+ tags:
+ - bundles
+ /external/v2/bundles/{bundle_id}/changelog:
+ patch:
+ consumes:
+ - application/json
+ description: Обновляет номер и описание изменений. Отсутствующее description
+ сохраняется, null очищает его. Требуется право редактирования или администрирования
+ документа; также доступно администратору диска.
+ parameters:
+ - description: Идентификатор версии документа
+ in: path
+ name: bundle_id
+ required: true
+ type: string
+ - description: Изменения
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/changelog.UpdateRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: Обновлённое описание изменений
+ schema:
+ $ref: '#/definitions/changelog.UpdateResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ "422":
+ description: Unprocessable Entity
+ schema:
+ $ref: '#/definitions/apperrors.APIError422'
+ summary: Изменить описание изменений версии
+ tags:
+ - changelogs
+ post:
+ consumes:
+ - application/json
+ description: Сохраняет номер и описание изменений версии. Повторное создание
+ возвращает 409. Требуется право редактирования или администрирования документа;
+ также доступно администратору диска.
+ parameters:
+ - description: Идентификатор версии документа
+ in: path
+ name: bundle_id
+ required: true
+ type: string
+ - description: Номер и описание
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/changelog.CreateRequest'
+ produces:
+ - application/json
+ responses:
+ "201":
+ description: Описание изменений версии
+ schema:
+ $ref: '#/definitions/changelog.Response'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ "409":
+ description: Conflict
+ schema:
+ $ref: '#/definitions/apperrors.APIError409'
+ "422":
+ description: Unprocessable Entity
+ schema:
+ $ref: '#/definitions/apperrors.APIError422'
+ summary: Добавить описание изменений версии
+ tags:
+ - changelogs
+ /external/v2/bundles/{bundle_id}/mark:
+ post:
+ consumes:
+ - application/json
+ description: Наносит маркировку на существующую или новую версию документа.
+ Достаточно права на один из запрошенных видов маркировки либо права администрирования
+ документа; также доступно администратору диска.
+ parameters:
+ - description: Идентификатор формата UUID версии документа
+ in: path
+ name: bundle_id
+ required: true
+ type: string
+ - description: Определения марок
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/bundle.markExternalBundleRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/bundle.markBundleResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Нанести QR-код, штамп или электронную подпись
+ tags:
+ - bundles
+ /external/v2/bundles/{bundle_id}/presign:
+ get:
+ description: Возвращает хеш файла версии для формирования электронной подписи.
+ Требуется право электронной подписи или администрирования документа; также
+ доступно администратору диска.
+ parameters:
+ - description: Идентификатор формата UUID версии документа
+ in: path
+ name: bundle_id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/bundle.PresignResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Подготовить версию к электронной подписи
+ tags:
+ - bundles
+ /external/v2/bundles/{bundle_id}/upload_finish:
+ post:
+ description: Подтверждает завершение загрузки всех файлов версии. Диск должен
+ принадлежать одной из компаний пользователя, указанных в токене.
+ parameters:
+ - description: Идентификатор версии документа
+ in: path
+ name: bundle_id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/bundle.CompleteUploadResponse'
+ "400":
+ description: Некорректный bundle_id / контент не залит
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Версия не найдена
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Завершить загрузку версии документа
+ tags:
+ - bundles
+ /external/v2/bundles/copy:
+ post:
+ consumes:
+ - application/json
+ description: |-
+ Создаёт новый документ на основе выбранной версии. Возвращает идентификатор операции; Prefer: wait заголовок позволяет дождаться результата в течение выбранного количества секунд в том же запросе, вместо того, чтобы отслеживать статус через API асинхронных операций. Требуется право записи или администрирования в месте назначения; также доступно администратору соответствующего диска.
+ Для ожидания результата в том же запросе передайте заголовок Prefer: wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за это время получен итоговый статус операции, возвращается HTTP 200 с её результатом. HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время итоговый результат не получен возвращается HTTP 202 с operation_id, без результата операции; дальнейший статус проверяйте через GET /async-operations/{id} в том же контуре и версии API. Истечение времени ожидания не отменяет операцию.
+ parameters:
+ - description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
+ HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
+ проверки статуса
+ in: header
+ name: Prefer
+ type: string
+ - description: Параметры
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/copy.NewDocumentRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: 'Итоговый статус получен за время Prefer: wait=N. Результат
+ операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
+ выполнения'
+ schema:
+ $ref: '#/definitions/move.StatusResponse'
+ "202":
+ description: 'Операция принята: возвращается operation_id без итогового
+ результата. Ожидание не запрошено либо итоговый результат не получен за
+ отведённое время'
+ schema:
+ $ref: '#/definitions/copy.StartResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "409":
+ description: Конфликт имён в назначении
+ schema:
+ $ref: '#/definitions/apperrors.APIError409'
+ summary: Скопировать версию в новый документ
+ tags:
+ - copy
+ /external/v2/bundles/copy-to-document:
+ post:
+ consumes:
+ - application/json
+ description: |-
+ Добавляет копию версии в другой документ. Копирование BIM-версий этим способом не поддерживается. Возвращает идентификатор операции; Prefer: wait позволяет дождаться результата в том же запросе, если операция не успела завершиться за это время, то возвращает статус создания асинхронной операции, а не ее результат. Требуется право записи или администрирования в месте назначения; также доступно администратору соответствующего диска.
+ Для ожидания результата в том же запросе передайте заголовок Prefer: wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за это время получен итоговый статус операции, возвращается HTTP 200 с её результатом. HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время итоговый результат не получен возвращается HTTP 202 с operation_id, без результата операции; дальнейший статус проверяйте через GET /async-operations/{id} в том же контуре и версии API. Истечение времени ожидания не отменяет операцию.
+ parameters:
+ - description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
+ HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
+ проверки статуса
+ in: header
+ name: Prefer
+ type: string
+ - description: Параметры
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/copy.ToDocumentRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: 'Итоговый статус получен за время Prefer: wait=N. Результат
+ операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
+ выполнения'
+ schema:
+ $ref: '#/definitions/move.StatusResponse'
+ "202":
+ description: 'Операция принята: возвращается operation_id без итогового
+ результата. Ожидание не запрошено либо итоговый результат не получен за
+ отведённое время'
+ schema:
+ $ref: '#/definitions/copy.StartResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "409":
+ description: Конфликт имён в назначении
+ schema:
+ $ref: '#/definitions/apperrors.APIError409'
+ summary: Скопировать версию в существующий документ
+ tags:
+ - copy
+ /external/v2/documents:
+ post:
+ consumes:
+ - application/json
+ description: Для проекта требуется право администрирования родительской папки;
+ для папки — записи или администрирования; для документа — загрузки, записи
+ или администрирования. Также доступно администратору диска. Диск должен принадлежать
+ одной из компаний пользователя, указанных в токене.
+ parameters:
+ - description: Параметры документа
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/document.CreateRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/document.CreateResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Родитель не найден
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ "409":
+ description: Имя занято
+ schema:
+ $ref: '#/definitions/apperrors.APIError409'
+ summary: Создать документ, папку или проект
+ tags:
+ - documents
+ /external/v2/documents/{document_id}/add_bundle:
+ post:
+ consumes:
+ - application/json
+ description: Привязывает загруженную версию к документу. Требуется право загрузки,
+ записи или администрирования документа; также доступно администратору диска.
+ parameters:
+ - description: ID документа
+ in: path
+ name: document_id
+ required: true
+ type: integer
+ - description: Идентификатор версии документа
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/document.AddBundleRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/document.AddBundleResponse'
+ "400":
+ description: Версия уже привязана к документу или ещё не загружена
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Добавить версию в документ
+ tags:
+ - documents
+ /external/v2/documents/{document_id}/attributes:
+ put:
+ consumes:
+ - application/json
+ description: 'Заменяет атрибуты документа полным набором из attributes. Новые
+ атрибуты добавляются, значения существующих обновляются, отсутствующие в запросе
+ атрибуты удаляются из активного набора. Атрибуты с пустым списком values также
+ удаляются из активного набора. Передавайте весь желаемый набор атрибутов,
+ а не только изменения. Пустой список attributes: [] очищает все атрибуты документа.
+ Требуется право редактирования или администрирования документа; также доступно
+ администратору соответствующего диска.'
+ parameters:
+ - description: ID документа
+ in: path
+ name: document_id
+ required: true
+ type: integer
+ - description: Полный желаемый набор атрибутов; пустой список очищает все атрибуты
+ документа
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/attribute.ReplaceRequest'
+ produces:
+ - application/json
+ responses:
+ "204":
+ description: Набор атрибутов документа полностью заменён
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ "422":
+ description: Unprocessable Entity
+ schema:
+ $ref: '#/definitions/apperrors.APIError422'
+ summary: Полностью заменить набор атрибутов документа
+ tags:
+ - attributes
+ /external/v2/documents/{document_id}/author:
+ patch:
+ consumes:
+ - application/json
+ description: Назначает нового автора документа; при include_bundles=true также
+ меняет автора всех его версий. Требуется право редактирования или администрирования
+ документа; также доступно администратору диска.
+ parameters:
+ - description: ID документа
+ in: path
+ name: document_id
+ required: true
+ type: integer
+ - description: Новый автор; include_bundles=true также меняет автора всех версий
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/document.ChangeAuthorRequest'
+ produces:
+ - application/json
+ responses:
+ "204":
+ description: No Content
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Сменить автора документа
+ tags:
+ - documents
+ /external/v2/documents/{document_id}/move_bundles:
+ patch:
+ consumes:
+ - application/json
+ description: |-
+ Переносит выбранные версии в целевой документ; исходные документы без версий удаляются. Возвращает идентификатор операции; Prefer: wait позволяет дождаться результата. Требуется право записи или администрирования в месте назначения; также доступно администратору соответствующего диска.
+ Для ожидания результата в том же запросе передайте заголовок Prefer: wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за это время получен итоговый статус операции, возвращается HTTP 200 с её результатом. HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время итоговый результат не получен возвращается HTTP 202 с operation_id, без результата операции; дальнейший статус проверяйте через GET /async-operations/{id} в том же контуре и версии API. Истечение времени ожидания не отменяет операцию.
+ parameters:
+ - description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
+ HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
+ проверки статуса
+ in: header
+ name: Prefer
+ type: string
+ - description: ID целевого документа
+ in: path
+ name: document_id
+ required: true
+ type: integer
+ - description: Идентификаторы версий документа
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/move.MoveBundlesRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: 'Итоговый статус получен за время Prefer: wait=N. Результат
+ операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
+ выполнения'
+ schema:
+ $ref: '#/definitions/move.StatusResponse'
+ "202":
+ description: 'Операция принята: возвращается operation_id без итогового
+ результата. Ожидание не запрошено либо итоговый результат не получен за
+ отведённое время'
+ schema:
+ $ref: '#/definitions/move.StartResponse'
+ "400":
+ description: Разные документы-источники / не загружен / гейт обработки
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Перенести версии в другой документ
+ tags:
+ - move
+ /external/v2/documents/{document_id}/permissions:
+ post:
+ consumes:
+ - application/json
+ description: 'Заменяет права, назначенные непосредственно на документе указанному
+ в service_account получателю, полным набором из permissions. Новые права добавляются,
+ отсутствующие в переданном списке отзываются, совпадающие сохраняются. Передавайте
+ весь желаемый набор прав, а не только изменения. Пустой список permissions:
+ [] отзывает все прямые права этого получателя на документе. Права других получателей
+ и права, унаследованные от родительских папок, не изменяются; поэтому отзыв
+ прямых прав не обязательно лишает получателя доступа. Требуется право управления
+ доступом или администрирования документа; также доступно администратору диска.
+ При управлении доступом без прав администратора можно добавлять и отзывать
+ только те права, которыми обладает пользователь.'
+ parameters:
+ - description: ID документа
+ in: path
+ name: document_id
+ required: true
+ type: integer
+ - description: Получатель и полный желаемый набор прав; пустой список отзывает
+ все его прямые права на документе
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/permission.SetRequest'
+ produces:
+ - application/json
+ responses:
+ "204":
+ description: Прямые права получателя заменены переданным набором
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Полностью заменить набор прав на документ для указанного получателя
+ tags:
+ - permissions
+ /external/v2/documents/{document_id}/rename:
+ patch:
+ consumes:
+ - application/json
+ description: Изменяет имя документа или папки. Требуется право редактирования
+ или администрирования документа; также доступно администратору диска.
+ parameters:
+ - description: ID документа
+ in: path
+ name: document_id
+ required: true
+ type: integer
+ - description: Новое имя
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/document.RenameRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/document.RenameResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ "409":
+ description: Имя занято в папке
+ schema:
+ $ref: '#/definitions/apperrors.APIError409'
+ summary: Переименовать документ или папку
+ tags:
+ - documents
+ /external/v2/documents/{document_id}/update-path:
+ patch:
+ consumes:
+ - application/json
+ description: Изменяет родительскую папку. Требуется право записи или администрирования
+ исходного документа и право редактирования или администрирования папки назначения;
+ администратор соответствующего диска имеет доступ к объектам этого диска.
+ parameters:
+ - description: ID документа
+ in: path
+ name: document_id
+ required: true
+ type: integer
+ - description: Новый родитель
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/document.UpdatePathRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/document.UpdatePathResponse'
+ "400":
+ description: Между дисками/проектами / в своё поддерево
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ "409":
+ description: Conflict
+ schema:
+ $ref: '#/definitions/apperrors.APIError409'
+ summary: Переместить документ или папку
+ tags:
+ - documents
+ /external/v2/documents/{id}/copy:
+ post:
+ consumes:
+ - application/json
+ description: |-
+ Копирует документ либо папку с содержимым. exclude исключает выбранные ветки. options.conflict_policy определяет поведение при совпадении имени в папке назначения: skip (по умолчанию, в том числе при пустом значении) — пропустить документ или папку целиком со всем содержимым; as_copy — создать копию под первым свободным именем с суффиксом « copy», « copy 2», …, « copy 50». Например, при занятом имени «Проект» копия получит имя «Проект copy». Если все 50 вариантов заняты, элемент также пропускается. При отсутствии совпадения сохраняется исходное имя. Существующие документы и папки не перезаписываются и не объединяются. Возвращает идентификатор операции; Prefer: wait позволяет дождаться результата. Требуется право администрирования исходных документов и право записи или администрирования в папке назначения; администратор соответствующего диска имеет доступ к объектам этого диска.
+ Для ожидания результата в том же запросе передайте заголовок Prefer: wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за это время получен итоговый статус операции, возвращается HTTP 200 с её результатом. HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время итоговый результат не получен возвращается HTTP 202 с operation_id, без результата операции; дальнейший статус проверяйте через GET /async-operations/{id} в том же контуре и версии API. Истечение времени ожидания не отменяет операцию.
+ parameters:
+ - description: ID корня
+ in: path
+ name: id
+ required: true
+ type: integer
+ - description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
+ HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
+ проверки статуса
+ in: header
+ name: Prefer
+ type: string
+ - description: Параметры
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/copy.SubtreeRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: 'Итоговый статус получен за время Prefer: wait=N. Результат
+ операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
+ выполнения'
+ schema:
+ $ref: '#/definitions/move.StatusResponse'
+ "202":
+ description: 'Операция принята: возвращается operation_id без итогового
+ результата. Ожидание не запрошено либо итоговый результат не получен за
+ отведённое время'
+ schema:
+ $ref: '#/definitions/copy.StartResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "409":
+ description: Конфликт имён в назначении
+ schema:
+ $ref: '#/definitions/apperrors.APIError409'
+ summary: Скопировать документ или дерево папок
+ tags:
+ - copy
+ /external/v2/documents/check-conflicts:
+ post:
+ consumes:
+ - application/json
+ description: Проверяет наличие одноимённых документов в указанных папках. Требуется
+ авторизация; отдельная проверка прав на документы не выполняется.
+ parameters:
+ - description: Кандидаты
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/s32d.CheckConflictsRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/s32d.CheckConflictsResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ summary: Проверить конфликты имён
+ tags:
+ - documents
+ /external/v2/documents/copy:
+ post:
+ consumes:
+ - application/json
+ description: |-
+ Копирует выбранные документы и папки с содержимым. Вложенные выбранные элементы копируются вместе с родительскими. options.conflict_policy определяет поведение при совпадении имени в папке назначения: skip (по умолчанию, в том числе при пустом значении) — пропустить документ или папку целиком со всем содержимым; as_copy — создать копию под первым свободным именем с суффиксом « copy», « copy 2», …, « copy 50». Например, при занятом имени «Проект» копия получит имя «Проект copy». Если все 50 вариантов заняты, элемент также пропускается. При отсутствии совпадения сохраняется исходное имя. Существующие документы и папки не перезаписываются и не объединяются. Возвращает идентификатор операции; Prefer: wait позволяет дождаться результата. Требуется право администрирования исходных документов и право записи или администрирования в папке назначения; администратор соответствующего диска имеет доступ к объектам этого диска.
+ Для ожидания результата в том же запросе передайте заголовок Prefer: wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за это время получен итоговый статус операции, возвращается HTTP 200 с её результатом. HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время итоговый результат не получен возвращается HTTP 202 с operation_id, без результата операции; дальнейший статус проверяйте через GET /async-operations/{id} в том же контуре и версии API. Истечение времени ожидания не отменяет операцию.
+ parameters:
+ - description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
+ HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
+ проверки статуса
+ in: header
+ name: Prefer
+ type: string
+ - description: Параметры
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/copy.SelectionRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: 'Итоговый статус получен за время Prefer: wait=N. Результат
+ операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
+ выполнения'
+ schema:
+ $ref: '#/definitions/move.StatusResponse'
+ "202":
+ description: 'Операция принята: возвращается operation_id без итогового
+ результата. Ожидание не запрошено либо итоговый результат не получен за
+ отведённое время'
+ schema:
+ $ref: '#/definitions/copy.StartResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "409":
+ description: Конфликт имён в назначении
+ schema:
+ $ref: '#/definitions/apperrors.APIError409'
+ summary: Скопировать выбранные документы и папки
+ tags:
+ - copy
+ /external/v2/documents/copy_structure:
+ post:
+ consumes:
+ - application/json
+ description: Создаёт копию исходной папки и её вложенных папок в месте назначения
+ без файлов. При copy_permissions=true также копирует действующие права доступа,
+ назначенные непосредственно каждой исходной папке. Унаследованные от родителей
+ источника права и права администраторов диска не копируются. По умолчанию
+ копирование прав выключено. Требуется право администрирования источника и
+ назначения; администратор соответствующего диска имеет доступ к объектам этого
+ диска.
+ parameters:
+ - description: Источник и цель
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/document.CopyStructureRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: Скопировано
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ summary: Скопировать структуру папок
+ tags:
+ - documents
+ /external/v2/documents/move:
+ post:
+ consumes:
+ - application/json
+ description: |-
+ Перемещает выбранные элементы, переименовывает или объединяет одноимённые документы согласно запросу. При объединении версии переходят в целевой документ, а исходный документ удаляется. Перенос между дисками или проектами запрещён. Требуется право записи или администрирования источника; право записи, редактирования или администрирования назначения. Для объединения требуется право записи или администрирования целевого документа. Администратор соответствующего диска имеет доступ к объектам этого диска. Возвращает идентификатор операции; Prefer: wait позволяет дождаться результата.
+ Для ожидания результата в том же запросе передайте заголовок Prefer: wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за это время получен итоговый статус операции, возвращается HTTP 200 с её результатом. HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время итоговый результат не получен возвращается HTTP 202 с operation_id, без результата операции; дальнейший статус проверяйте через GET /async-operations/{id} в том же контуре и версии API. Истечение времени ожидания не отменяет операцию.
+ parameters:
+ - description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
+ HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
+ проверки статуса
+ in: header
+ name: Prefer
+ type: string
+ - description: Манифест
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/move.MoveRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: 'Итоговый статус получен за время Prefer: wait=N. Результат
+ операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
+ выполнения'
+ schema:
+ $ref: '#/definitions/move.StatusResponse'
+ "202":
+ description: 'Операция принята: возвращается operation_id без итогового
+ результата. Ожидание не запрошено либо итоговый результат не получен за
+ отведённое время'
+ schema:
+ $ref: '#/definitions/move.StartResponse'
+ "400":
+ description: Смешение файлов и папок / между дисками/проектами / невалидный
+ union
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "409":
+ description: Конфликты имён в назначении
+ schema:
+ $ref: '#/definitions/apperrors.APIError409'
+ summary: Переместить документы и папки
+ tags:
+ - move
+ /external/v2/documents/public_link:
+ post:
+ consumes:
+ - application/json
+ description: Создаёт ссылку на последнюю, указанную или последнюю согласованную
+ версию документа. Можно задать срок действия. Требуется право создания публичных
+ ссылок или администрирования документа; также доступно администратору диска.
+ parameters:
+ - description: Параметры
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/publiclink.CreateRequest'
+ produces:
+ - application/json
+ responses:
+ "201":
+ description: Created
+ schema:
+ $ref: '#/definitions/publiclink.CreateOutput'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Создать публичную ссылку
+ tags:
+ - public-links
+ /external/v2/documents/public_link/{id}:
+ patch:
+ consumes:
+ - application/json
+ description: Меняет параметры ссылки. Отсутствующие поля сохраняются; expires_at=null
+ отменяет ограничение срока действия. Требуется право создания публичных ссылок
+ или администрирования документа; также доступно администратору диска.
+ parameters:
+ - description: ID ссылки
+ in: path
+ name: id
+ required: true
+ type: string
+ - description: Изменения
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/publiclink.UpdateRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/publiclink.UpdateOutput'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Изменить публичную ссылку
+ tags:
+ - public-links
+ /external/v2/documents/update-path:
+ patch:
+ consumes:
+ - application/json
+ description: Изменяет родительскую папку выбранных документов. Документы, для
+ которых недостаточно прав, пропускаются. Требуется право записи или администрирования
+ исходного документа и право редактирования или администрирования папки назначения;
+ администратор соответствующего диска имеет доступ к объектам этого диска.
+ parameters:
+ - description: Список документов и родитель
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/document.BulkUpdatePathRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/document.BulkUpdatePathResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Переместить несколько документов
+ tags:
+ - documents
+ /external/v2/links:
+ post:
+ consumes:
+ - application/json
+ description: Создаёт ссылку на существующий документ в выбранной папке. Требуется
+ право записи или администрирования и на документ, и на папку назначения; администратор
+ соответствующего диска имеет доступ к объектам этого диска.
+ parameters:
+ - description: Параметры
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/link.CreateRequest'
+ produces:
+ - application/json
+ responses:
+ "201":
+ description: Created
+ schema:
+ $ref: '#/definitions/link.CreateOutput'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "409":
+ description: Имя занято / линк уже есть
+ schema:
+ $ref: '#/definitions/apperrors.APIError409'
+ "422":
+ description: Цель — линк или папка
+ schema:
+ $ref: '#/definitions/apperrors.APIError422'
+ summary: Создать ссылку на документ в папке
+ tags:
+ - links
+ /external/v2/uploads/multipart/{upload_id}/{part_number}:
+ post:
+ consumes:
+ - application/octet-stream
+ description: 'Часть файла передаётся в теле запроса с Content-Type: application/octet-stream
+ и Content-Length. Размер каждой части, кроме последней, должен быть не менее
+ 5 МиБ. Диск должен принадлежать одной из компаний пользователя, указанных
+ в токене.'
+ parameters:
+ - description: UUID загрузки
+ in: path
+ name: upload_id
+ required: true
+ type: string
+ - description: Номер части (с 1)
+ in: path
+ name: part_number
+ required: true
+ type: integer
+ - description: Байты файла в теле запроса, без JSON-обёртки и кодирования Base64
+ in: body
+ name: content
+ required: true
+ schema:
+ type: string
+ - description: Размер тела запроса в байтах
+ format: int64
+ in: header
+ minimum: 1
+ name: Content-Length
+ required: true
+ type: integer
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/upload.UploadPartResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Загрузить часть файла
+ tags:
+ - uploads
+ /external/v2/uploads/multipart/{upload_id}/abort:
+ post:
+ description: Отменяет незавершённую загрузку и удаляет её части. Диск должен
+ принадлежать одной из компаний пользователя, указанных в токене.
+ parameters:
+ - description: UUID загрузки
+ in: path
+ name: upload_id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/upload.MultipartFinishedResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Отменить загрузку файла по частям
+ tags:
+ - uploads
+ /external/v2/uploads/multipart/{upload_id}/complete:
+ post:
+ description: Собирает загруженные части в файл версии документа. Диск должен
+ принадлежать одной из компаний пользователя, указанных в токене.
+ parameters:
+ - description: UUID загрузки
+ in: path
+ name: upload_id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/upload.MultipartFinishedResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: '#/definitions/apperrors.APIError401'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Завершить загрузку файла по частям
+ tags:
+ - uploads
+ /internal/v1/async-operations:
+ get:
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/move.OperationListResponse'
+ summary: Список async-операций (internal)
+ tags:
+ - async-operations-internal
+ /internal/v1/async-operations/{id}:
+ get:
+ parameters:
+ - description: UUID операции
+ in: path
+ name: id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/move.StatusResponse'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Статус async-операции (internal)
+ tags:
+ - async-operations-internal
+ /internal/v1/async-operations/{id}/cancel:
+ post:
+ parameters:
+ - description: UUID операции
+ in: path
+ name: id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "202":
+ description: Отмена запрошена
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ "409":
+ description: Conflict
+ schema:
+ $ref: '#/definitions/apperrors.APIError409'
+ summary: Отменить async-операцию (internal)
+ tags:
+ - async-operations-internal
+ /internal/v1/bundles/{bundle_id}/{key}/upload_multipart:
+ post:
+ description: 'Легаси-совместимый init: активный незавершённый upload той же
+ цели супersед-ится.'
+ parameters:
+ - description: UUID бандла
+ in: path
+ name: bundle_id
+ required: true
+ type: string
+ - description: Ключ датасорса
+ in: path
+ name: key
+ required: true
+ type: string
+ - description: 'Только для датасорса типа folder (облака точек, тайлы): относительный
+ путь файла внутри него'
+ in: query
+ name: path
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/upload.StartMultipartInternalResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Начать multipart-загрузку (internal)
+ tags:
+ - bundles-internal
+ /internal/v1/bundles/{bundle_id}/attributes:
+ patch:
+ consumes:
+ - application/json
+ description: 'ВНИМАНИЕ, легаси-поведение: заменяет JSONB атрибутов обработки
+ и для геопривязываемых типов (облака точек) ПЕРЕЗАПУСКАЕТ workflow-пайплайн
+ (создаёт tiles-датасорс и переигрывает задачу геопривязки); для остальных
+ типов проставляет workflow_status=skipped. Это не пользовательские атрибуты
+ документа (те — PUT /documents/{id}/attributes).'
+ parameters:
+ - description: UUID бандла
+ in: path
+ name: bundle_id
+ required: true
+ type: string
+ - description: Атрибуты
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/bundle.UpdateAttributesRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/bundle.UpdateAttributesOutput'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Обновить атрибуты обработки бандла
+ tags:
+ - bundles-internal
+ /internal/v1/bundles/{bundle_id}/copy:
+ post:
+ consumes:
+ - application/json
+ description: 'DEPRECATED. Повторяет семантику старого POST /bundles/{id}/copy:
+ create-vs-reuse по имени, синхронное ожидание до дедлайна; ответ — легаси-тело
+ документа либо заглушка при 202-таймауте. Дельта от легаси: параметр use_source_bundle_as_copied_from
+ не поддержан — bundle_copied_from проставляется ВСЕГДА (маркер происхождения
+ копии; по нему наследуются согласования).'
+ parameters:
+ - description: UUID исходного бандла
+ in: path
+ name: bundle_id
+ required: true
+ type: string
+ - description: Параметры
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/copy.LegacyBundleCopyRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: Легаси-тело документа
+ schema:
+ $ref: '#/definitions/copy.LegacyDocument'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Легаси-копия бандла (compat-шим)
+ tags:
+ - copy-internal
+ /internal/v1/bundles/{bundle_id}/datasources/{key}/ensure:
+ post:
+ consumes:
+ - application/json
+ description: 'Создаёт запись датасорса, если её нет; существующей обновляет
+ имя. Идемпотентно. Основной потребитель — filestreamer (documentation-api):
+ его upload-хендлеры регистрируют датасорс через этот эндпоинт, чтобы запись
+ и outbox-событие происходили в cde-api.'
+ parameters:
+ - description: UUID бандла
+ in: path
+ name: bundle_id
+ required: true
+ type: string
+ - description: Ключ датасорса
+ in: path
+ name: key
+ required: true
+ type: string
+ - description: Параметры
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/bundle.EnsureDataSourceRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/bundle.EnsureDataSourceResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Гарантировать датасорс по ключу
+ tags:
+ - bundles-internal
+ /internal/v1/bundles/{bundle_id}/workflow:
+ post:
+ consumes:
+ - application/json
+ description: 'Специфичный эндпоинт сценария «Сравнение» (deviation): регистрирует
+ workflow, созданный внешне в workflows-api, за бандлом и публикует workflow.assigned.
+ Не общий механизм привязки произвольных workflow.'
+ parameters:
+ - description: UUID бандла
+ in: path
+ name: bundle_id
+ required: true
+ type: string
+ - description: ID workflow
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/bundle.AddWorkflowRequest'
+ produces:
+ - application/json
+ responses:
+ "204":
+ description: Привязан
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Привязать deviation-workflow к бандлу
+ tags:
+ - bundles-internal
+ /internal/v1/bundles/copy:
+ post:
+ consumes:
+ - application/json
+ description: 'Для ожидания результата в том же запросе передайте заголовок Prefer:
+ wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за
+ это время получен итоговый статус операции, возвращается HTTP 200 с её результатом.
+ HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status
+ и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время
+ итоговый результат не получен возвращается HTTP 202 с operation_id, без результата
+ операции; дальнейший статус проверяйте через GET /async-operations/{id} в
+ том же контуре и версии API. Истечение времени ожидания не отменяет операцию.'
+ parameters:
+ - description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
+ HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
+ проверки статуса
+ in: header
+ name: Prefer
+ type: string
+ - description: Параметры
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/copy.NewDocumentRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: 'Итоговый статус получен за время Prefer: wait=N. Результат
+ операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
+ выполнения'
+ schema:
+ $ref: '#/definitions/move.StatusResponse'
+ "202":
+ description: 'Операция принята: возвращается operation_id без итогового
+ результата. Ожидание не запрошено либо итоговый результат не получен за
+ отведённое время'
+ schema:
+ $ref: '#/definitions/copy.StartResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "409":
+ description: Conflict
+ schema:
+ $ref: '#/definitions/apperrors.APIError409'
+ summary: Копия версии в новый документ (internal)
+ tags:
+ - copy-internal
+ /internal/v1/bundles/copy-to-document:
+ post:
+ consumes:
+ - application/json
+ description: 'Для ожидания результата в том же запросе передайте заголовок Prefer:
+ wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за
+ это время получен итоговый статус операции, возвращается HTTP 200 с её результатом.
+ HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status
+ и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время
+ итоговый результат не получен возвращается HTTP 202 с operation_id, без результата
+ операции; дальнейший статус проверяйте через GET /async-operations/{id} в
+ том же контуре и версии API. Истечение времени ожидания не отменяет операцию.'
+ parameters:
+ - description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
+ HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
+ проверки статуса
+ in: header
+ name: Prefer
+ type: string
+ - description: Параметры
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/copy.ToDocumentRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: 'Итоговый статус получен за время Prefer: wait=N. Результат
+ операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
+ выполнения'
+ schema:
+ $ref: '#/definitions/move.StatusResponse'
+ "202":
+ description: 'Операция принята: возвращается operation_id без итогового
+ результата. Ожидание не запрошено либо итоговый результат не получен за
+ отведённое время'
+ schema:
+ $ref: '#/definitions/copy.StartResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "409":
+ description: Conflict
+ schema:
+ $ref: '#/definitions/apperrors.APIError409'
+ summary: Копия версии в существующий документ (internal)
+ tags:
+ - copy-internal
+ /internal/v1/disks:
+ post:
+ consumes:
+ - application/json
+ description: 'Создаёт диск: имя и бакет выводятся из компании, создаётся S3-бакет
+ и корневой документ.'
+ parameters:
+ - description: Параметры диска
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/disk.CreateInternalRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/disk.CreateInternalResponse'
+ "400":
+ description: Компания/админы не найдены
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "409":
+ description: Бакет уже существует
+ schema:
+ $ref: '#/definitions/apperrors.APIError409'
+ "422":
+ description: Unprocessable Entity
+ schema:
+ $ref: '#/definitions/apperrors.APIError422'
+ "502":
+ description: Каталог пользователей недоступен
+ schema:
+ $ref: '#/definitions/apperrors.APIError502'
+ summary: Создать диск (internal)
+ tags:
+ - disks-internal
+ /internal/v1/documents/:
+ post:
+ consumes:
+ - application/json
+ description: 'Легаси-совместимое внутреннее создание: документ + скелет бандла
+ с датасорсами по типу.'
+ parameters:
+ - description: Параметры
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/document.CreateInternalRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/document.CreateInternalResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ "409":
+ description: Conflict
+ schema:
+ $ref: '#/definitions/apperrors.APIError409'
+ summary: Создать документ (internal)
+ tags:
+ - documents-internal
+ /internal/v1/documents/{document_id}:
+ delete:
+ parameters:
+ - description: ID документа
+ in: path
+ name: document_id
+ required: true
+ type: integer
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: Удалён
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Удалить документ (internal)
+ tags:
+ - documents-internal
+ /internal/v1/documents/{document_id}/move_bundles:
+ patch:
+ consumes:
+ - application/json
+ description: 'Для ожидания результата в том же запросе передайте заголовок Prefer:
+ wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за
+ это время получен итоговый статус операции, возвращается HTTP 200 с её результатом.
+ HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status
+ и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время
+ итоговый результат не получен возвращается HTTP 202 с operation_id, без результата
+ операции; дальнейший статус проверяйте через GET /async-operations/{id} в
+ том же контуре и версии API. Истечение времени ожидания не отменяет операцию.'
+ parameters:
+ - description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
+ HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
+ проверки статуса
+ in: header
+ name: Prefer
+ type: string
+ - description: ID целевого документа
+ in: path
+ name: document_id
+ required: true
+ type: integer
+ - description: Идентификаторы версий документа
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/move.MoveBundlesRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: 'Итоговый статус получен за время Prefer: wait=N. Результат
+ операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
+ выполнения'
+ schema:
+ $ref: '#/definitions/move.StatusResponse'
+ "202":
+ description: 'Операция принята: возвращается operation_id без итогового
+ результата. Ожидание не запрошено либо итоговый результат не получен за
+ отведённое время'
+ schema:
+ $ref: '#/definitions/move.StartResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Перенести версии (internal)
+ tags:
+ - move-internal
+ /internal/v1/documents/{id}/copy:
+ post:
+ consumes:
+ - application/json
+ description: 'Для ожидания результата в том же запросе передайте заголовок Prefer:
+ wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за
+ это время получен итоговый статус операции, возвращается HTTP 200 с её результатом.
+ HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status
+ и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время
+ итоговый результат не получен возвращается HTTP 202 с operation_id, без результата
+ операции; дальнейший статус проверяйте через GET /async-operations/{id} в
+ том же контуре и версии API. Истечение времени ожидания не отменяет операцию.'
+ parameters:
+ - description: ID корня
+ in: path
+ name: id
+ required: true
+ type: integer
+ - description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
+ HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
+ проверки статуса
+ in: header
+ name: Prefer
+ type: string
+ - description: Параметры
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/copy.SubtreeRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: 'Итоговый статус получен за время Prefer: wait=N. Результат
+ операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
+ выполнения'
+ schema:
+ $ref: '#/definitions/move.StatusResponse'
+ "202":
+ description: 'Операция принята: возвращается operation_id без итогового
+ результата. Ожидание не запрошено либо итоговый результат не получен за
+ отведённое время'
+ schema:
+ $ref: '#/definitions/copy.StartResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "409":
+ description: Conflict
+ schema:
+ $ref: '#/definitions/apperrors.APIError409'
+ summary: Копия поддерева (internal)
+ tags:
+ - copy-internal
+ /internal/v1/documents/copy:
+ post:
+ consumes:
+ - application/json
+ description: 'Для ожидания результата в том же запросе передайте заголовок Prefer:
+ wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за
+ это время получен итоговый статус операции, возвращается HTTP 200 с её результатом.
+ HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status
+ и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время
+ итоговый результат не получен возвращается HTTP 202 с operation_id, без результата
+ операции; дальнейший статус проверяйте через GET /async-operations/{id} в
+ том же контуре и версии API. Истечение времени ожидания не отменяет операцию.'
+ parameters:
+ - description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
+ HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
+ проверки статуса
+ in: header
+ name: Prefer
+ type: string
+ - description: Параметры
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/copy.SelectionRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: 'Итоговый статус получен за время Prefer: wait=N. Результат
+ операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
+ выполнения'
+ schema:
+ $ref: '#/definitions/move.StatusResponse'
+ "202":
+ description: 'Операция принята: возвращается operation_id без итогового
+ результата. Ожидание не запрошено либо итоговый результат не получен за
+ отведённое время'
+ schema:
+ $ref: '#/definitions/copy.StartResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "409":
+ description: Conflict
+ schema:
+ $ref: '#/definitions/apperrors.APIError409'
+ summary: Копия выбранных узлов (internal)
+ tags:
+ - copy-internal
+ /internal/v1/documents/move:
+ post:
+ consumes:
+ - application/json
+ description: 'Для ожидания результата в том же запросе передайте заголовок Prefer:
+ wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за
+ это время получен итоговый статус операции, возвращается HTTP 200 с её результатом.
+ HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status
+ и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время
+ итоговый результат не получен возвращается HTTP 202 с operation_id, без результата
+ операции; дальнейший статус проверяйте через GET /async-operations/{id} в
+ том же контуре и версии API. Истечение времени ожидания не отменяет операцию.'
+ parameters:
+ - description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
+ HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
+ проверки статуса
+ in: header
+ name: Prefer
+ type: string
+ - description: Манифест
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/move.MoveRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: 'Итоговый статус получен за время Prefer: wait=N. Результат
+ операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
+ выполнения'
+ schema:
+ $ref: '#/definitions/move.StatusResponse'
+ "202":
+ description: 'Операция принята: возвращается operation_id без итогового
+ результата. Ожидание не запрошено либо итоговый результат не получен за
+ отведённое время'
+ schema:
+ $ref: '#/definitions/move.StartResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "409":
+ description: Conflict
+ schema:
+ $ref: '#/definitions/apperrors.APIError409'
+ summary: Переместить документы (internal)
+ tags:
+ - move-internal
+ /internal/v1/documents/resolve_relative_path:
+ post:
+ consumes:
+ - application/json
+ description: 'Используется flows-backend в согласованиях: для каждого документа
+ находит (или создаёт при should_folder_be_created) папку по relative_path
+ относительно папки документа — туда раскладываются согласованные документы.'
+ parameters:
+ - description: Параметры
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/document.ResolveRelativePathRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/document.ResolveRelativePathResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "403":
+ description: Forbidden
+ schema:
+ $ref: '#/definitions/apperrors.APIError403'
+ summary: Резолв относительного пути
+ tags:
+ - documents-internal
+ /internal/v1/documents/super_create:
+ post:
+ consumes:
+ - application/json
+ description: Документ + N бандлов, сразу помеченных uploaded (контент уже в
+ S3). Админ-гейт остаётся на doc-api.
+ parameters:
+ - description: Параметры
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/document.SuperCreateRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/document.SuperCreateResponse'
+ "400":
+ description: Гейты структуры / диск не найден / расширения
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ "409":
+ description: Conflict
+ schema:
+ $ref: '#/definitions/apperrors.APIError409'
+ summary: Super create (internal)
+ tags:
+ - documents-internal
+ /internal/v1/pages:
+ post:
+ consumes:
+ - application/json
+ description: Регистрирует страницу и тамбнейл, произведённые пайплайном обработки.
+ parameters:
+ - description: Параметры страницы
+ in: body
+ name: request
+ required: true
+ schema:
+ $ref: '#/definitions/page.CreateRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/page.CreateResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Создать страницу (internal)
+ tags:
+ - pages-internal
+ /internal/v1/s3/file:
+ delete:
+ description: Удаляет объект и связанную датасорс-запись по пути bucket/key (легаси
+ DELETE /s3/file).
+ parameters:
+ - description: 'Путь объекта: bucket/key'
+ in: query
+ name: path
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "204":
+ description: Удалён
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Удалить файл из S3
+ tags:
+ - bundles-internal
+ /internal/v1/upload_finish/bundles/{bundle_id}:
+ post:
+ description: 'Внутренний finish: пересчитывает размер по фактическим объектам;
+ вариант с /{key} — по одному датасорсу.'
+ parameters:
+ - description: UUID бандла
+ in: path
+ name: bundle_id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/bundle.CompleteUploadResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Завершить загрузку (internal)
+ tags:
+ - bundles-internal
+ /internal/v1/upload_finish/bundles/{bundle_id}/{key}:
+ post:
+ description: 'Внутренний finish: пересчитывает размер по фактическим объектам;
+ вариант с /{key} — по одному датасорсу.'
+ parameters:
+ - description: UUID бандла
+ in: path
+ name: bundle_id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/bundle.CompleteUploadResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Завершить загрузку (internal)
+ tags:
+ - bundles-internal
+ /internal/v1/uploads/multipart/{upload_id}/{part_number}:
+ post:
+ consumes:
+ - application/octet-stream
+ description: 'Часть файла передаётся сырым телом с Content-Type: application/octet-stream
+ и Content-Length. Размер каждой части, кроме последней, должен быть не менее
+ 5 МиБ. Доверенный внутренний маршрут без авторизации пользователя.'
+ parameters:
+ - description: Идентификатор загрузки
+ in: path
+ name: upload_id
+ required: true
+ type: string
+ - description: Номер части (с 1)
+ in: path
+ name: part_number
+ required: true
+ type: integer
+ - description: Байты файла в теле запроса, без JSON-обёртки и кодирования Base64
+ in: body
+ name: content
+ required: true
+ schema:
+ type: string
+ - description: Размер тела запроса в байтах
+ format: int64
+ in: header
+ minimum: 1
+ name: Content-Length
+ required: true
+ type: integer
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/upload.UploadPartResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Загрузить часть файла
+ tags:
+ - uploads
+ /internal/v1/uploads/multipart/{upload_id}/abort:
+ post:
+ description: Отменяет незавершённую загрузку и удаляет её части. Доверенный
+ внутренний маршрут без авторизации пользователя.
+ parameters:
+ - description: Идентификатор загрузки
+ in: path
+ name: upload_id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/upload.MultipartFinishedResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Отменить загрузку файла по частям
+ tags:
+ - uploads
+ /internal/v1/uploads/multipart/{upload_id}/complete:
+ post:
+ description: Собирает загруженные части в файл версии документа. Доверенный
+ внутренний маршрут без авторизации пользователя.
+ parameters:
+ - description: Идентификатор загрузки
+ in: path
+ name: upload_id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/upload.MultipartFinishedResponse'
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Завершить загрузку файла по частям
+ tags:
+ - uploads
+ /internal/v1/workflows/{wf_id}:
+ post:
+ consumes:
+ - application/json
+ description: 'Колбэк последней задачи пайплайна, вызывается только при успехе:
+ помечает workflow и его бандл done (write-side кэш статуса; события не публикуются
+ — статус workflow принадлежит workflows-api).'
+ parameters:
+ - description: UUID workflow
+ in: path
+ name: wf_id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: Принято
+ "400":
+ description: Bad Request
+ schema:
+ $ref: '#/definitions/apperrors.APIError400'
+ "404":
+ description: Not Found
+ schema:
+ $ref: '#/definitions/apperrors.APIError404'
+ summary: Финализация workflow (internal)
+ tags:
+ - workflows-internal
+securityDefinitions:
+ UserToken:
+ in: header
+ name: Authorization
+ type: apiKey
+swagger: "2.0"
diff --git a/apps/documentations/d8-ugmk-prod/cde-api.yaml b/apps/documentations/d8-ugmk-prod/cde-api.yaml
new file mode 100644
index 0000000..06e1e24
--- /dev/null
+++ b/apps/documentations/d8-ugmk-prod/cde-api.yaml
@@ -0,0 +1,299 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2
+kind: HelmRelease
+metadata:
+ name: cde-api
+ namespace: documentations
+spec:
+ values:
+ services:
+ cde-api:
+ envs:
+ - name: CDE_API_RESOURCES_BASE_URL
+ value:
+ _default: "http://iams.iam.svc.cluster.local:8080"
+ - name: CDE_API_RESOURCES_TIMEOUT
+ value:
+ _default: "10s"
+ - name: CDE_API_APP_NAME
+ value:
+ _default: "cde-api"
+ - name: CDE_API_SENTRY_DSN
+ value:
+ _default: ""
+ - name: CDE_API_SENTRY_ENVIRONMENT
+ value:
+ _default: ""
+ - name: CDE_API_LOG_LEVEL
+ value:
+ _default: "debug"
+ - name: CDE_API_HTTP_PORT
+ value:
+ _default: "8000"
+ - name: CDE_API_HTTP_READ_TIMEOUT
+ value:
+ _default: "0s"
+ - name: CDE_API_HTTP_WRITE_TIMEOUT
+ value:
+ _default: "0s"
+ - name: CDE_API_HTTP_IDLE_TIMEOUT
+ value:
+ _default: "120s"
+ - name: CDE_API_HTTP_READ_BUFFER_SIZE
+ value:
+ _default: "96"
+ - name: CDE_API_OBSERVABILITY_ENABLE
+ value:
+ _default: "true"
+ - name: CDE_API_OBSERVABILITY_HOST
+ value:
+ _default: "signoz-otel-collector-external.signoz.svc.cluster.local"
+ - name: CDE_API_OBSERVABILITY_PORT
+ value:
+ _default: "4317"
+ - name: CDE_API_S3_MAX_SINGLE_UPLOAD_SIZE
+ value:
+ _default: "5368709120"
+ - name: CDE_API_S3_MAX_PART_SIZE
+ value:
+ _default: "524288000"
+ - name: CDE_API_S3_UPLOAD_STALL_TIMEOUT
+ value:
+ _default: "10m"
+ - name: CDE_API_PUBLIC_LINK_HOST
+ value:
+ _default: "https://sarex-document-link.uralmine.com"
+ - name: CDE_API_WORKFLOW_BASE_URL
+ value:
+ _default: "http://backend-svc.processing.svc.cluster.local:80"
+ - name: CDE_API_WORKFLOW_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_WORKFLOW_RETRY_WAIT_MS
+ value:
+ _default: "500"
+ - name: CDE_API_WORKFLOW_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_BIMAPI_URL
+ value:
+ _default: "http://backend-svc.bim.svc.cluster.local:80"
+ - name: CDE_API_BIMAPI_V2_URL
+ value:
+ _default: "http://backend-svc.bim.svc.cluster.local:80"
+ - name: CDE_API_BIMAPI_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_BIMAPI_RETRY_WAIT_MS
+ value:
+ _default: "1000"
+ - name: CDE_API_BIMAPI_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_BIMAPI_TIMEOUT_V2_MS
+ value:
+ _default: "300000"
+ - name: CDE_API_WORKSPACE_BASE_URL
+ value:
+ _default: "http://backend-svc.workspaces.svc.cluster.local:80"
+ - name: CDE_API_WORKSPACE_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_WORKSPACE_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_SYSTEMLOG_BASE_URL
+ value:
+ _default: "http://backend-svc.system-log.svc.cluster.local:80"
+ - name: CDE_API_SYSTEMLOG_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_CONTAINER_REGISTRY
+ value:
+ _default: "cr.yandex/crp3ccidau046kdj8g9q"
+ - name: CDE_API_WORKFLOWS_IMAGES_VERSION
+ value:
+ _default: "master"
+ - name: CDE_API_DJANGO_HOST
+ value:
+ _default: "http://backend-svc.django.svc.cluster.local:80"
+ - name: CDE_API_ENVIRONMENT
+ value:
+ _default: "production"
+ - name: CDE_API_CONVERTED_PDF_TO_S3
+ value:
+ _default: "true"
+ - name: CDE_API_CONVERT_DXF_TO_GEOJSON
+ value:
+ _default: "true"
+ - name: CDE_API_CONVERT_DWG_TO_GEOJSON
+ value:
+ _default: "true"
+ - name: CDE_API_USE_BIMV1_FOR_BIMV2
+ value:
+ _default: "true"
+ - name: CDE_API_EAV_HOST
+ value:
+ _default: "http://backend-svc.eav.svc.cluster.local:80"
+ - name: CDE_API_EAV_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_DOCUMENTATION_V2_URL
+ value:
+ _default: "http://backend-api-svc.documentations.svc.cluster.local:80"
+ - name: CDE_API_INTERNAL_URL
+ value:
+ _default: "http://cde-api.documentations:8000"
+ - name: CDE_API_COPY_MAX_SYNC_WAIT_MS
+ value:
+ _default: "300000"
+ - name: CDE_API_LAST_MASTER_BIM
+ value:
+ _default: "36311"
+ - name: CDE_API_LAST_SLAVE_1_BIM
+ value:
+ _default: "94015"
+ - name: CDE_API_LAST_SLAVE_2_BIM
+ value:
+ _default: "135771"
+ - name: CDE_API_USE_BIM_INSERTER
+ value:
+ _default: "true"
+ - name: CDE_API_USE_LEGACY_BIM_FLOW
+ value:
+ _default: "0"
+ - name: CDE_API_DATABASE_MAX_CONN_LIFETIME
+ value:
+ _default: "30m"
+ - name: CDE_API_DATABASE_MAX_CONN_IDLE_TIME
+ value:
+ _default: "10m"
+ - name: CDE_API_DATABASE_HEALTH_CHECK_PERIOD
+ value:
+ _default: "30s"
+ - name: CDE_API_DATABASE_POOL_SIZE
+ value:
+ _default: "10"
+ - name: CDE_API_DIAGNOSTICS_SLOW_OPERATION_THRESHOLD
+ value:
+ _default: "30s"
+ - name: CDE_API_DATABASE__SSLMODE
+ value:
+ _default: "disable"
+ - name: CDE_API_DATABASE__INSECURE_SKIP_TLS
+ value:
+ _default: "false"
+ - name: CDE_API_DATABASE_OBSERVABILITY_ENABLE
+ value:
+ _default: "true"
+ - name: CDE_API_REDIS__DB
+ value:
+ _default: "5"
+ - name: CDE_API_REDIS__SSL
+ value:
+ _default: "false"
+ - name: CDE_API_REDIS__POOL_SIZE
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__MIN_IDLE_CONNS
+ value:
+ _default: "2"
+ - name: CDE_API_REDIS__DIAL_TIMEOUT_MS
+ value:
+ _default: "5000"
+ - name: CDE_API_REDIS__READ_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__WRITE_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__DEFAULT_TTL_MINUTES
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__PERMISSION_CACHE_ENABLED
+ value:
+ _default: "false"
+ - name: CDE_API_S3_BUCKET_NAME
+ value:
+ _default: "documentations-prod"
+ - name: CDE_API_S3_USE_SSL
+ value:
+ _default: "true"
+ - name: CDE_API_S3_BUCKET_LOOKUP
+ value:
+ _default: "auto"
+ - name: CDE_API_S3_INSECURE_SKIP_TLS
+ value:
+ _default: "true"
+ - name: CDE_API_S3_CHECK_BUCKET
+ value:
+ _default: "false"
+ - name: CDE_API_S3_CONNECT_TIMEOUT
+ value:
+ _default: "10s"
+ - name: CDE_API_S3_TLS_HANDSHAKE_TIMEOUT
+ value:
+ _default: "10s"
+ - name: CDE_API_S32D_MAX_ARCHIVE_SIZE_BYTES
+ value:
+ _default: "1099511627776"
+ - name: CDE_API_S32D_MAX_FILES_COUNT
+ value:
+ _default: "500"
+ - name: CDE_API_ZEEBE_USE_PLAINTEXT
+ value:
+ _default: "true"
+ - name: CDE_API_USERS_BASE_URL
+ value:
+ _default: "http://backend-svc.django.svc.cluster.local:80"
+ - name: CDE_API_DISK_BUCKET_NAMESPACE
+ value:
+ _default: "documentations-prod"
+ - name: CDE_API_USERS_ORIGINATOR
+ value:
+ _default: "docs_prod"
+ - name: CDE_API_USERS_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_MAILER_BASE_URL
+ value:
+ _default: "http://mailer-service.mailer:8000"
+ - name: CDE_API_MAILER_FROM_EMAIL
+ value:
+ _default: "noreply@sarex.io"
+ - name: CDE_API_MAILER_RETRY_COUNT
+ value:
+ _default: "2"
+ - name: CDE_API_MAILER_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_FLOWS_URL
+ value:
+ _default: "http://backend-svc.flows.svc.cluster.local:80"
+ - name: CDE_API_TRANSMITTALS_URL
+ value:
+ _default: "http://transmittal-service.transmittal.svc.cluster.local:80"
+ - name: CDE_API_WORKFLOWS_CONFIG_FILEPATH
+ value:
+ _default: "/etc/app/tasks_execution_config.json"
+ - name: CDE_API_RABBITMQ__MARKS_ROUTING_KEY
+ value:
+ _default: "pdf_markings_input"
+ - name: CDE_API_RABBITMQ__HASHER_ROUTING_KEY
+ value:
+ _default: "hash.compute.normal"
+ - name: CDE_API_RABBITMQ__HASHER_EXCHANGE
+ value:
+ _default: "hash.compute"
+ - name: CDE_API_REDIS__HOST
+ value:
+ _default: "redis"
+ - name: CDE_API_REDIS__PORT
+ value:
+ _default: "6379"
+ - name: CDE_API_RABBITMQ__HOST
+ value:
+ _default: "rabbitmq.rabbitmq.svc.cluster.local"
+ - name: CDE_API_RABBITMQ__PORT
+ value:
+ _default: "5672"
diff --git a/apps/documentations/d8-ugmk-prod/kustomization.yaml b/apps/documentations/d8-ugmk-prod/kustomization.yaml
index c9bae98..4ec96db 100644
--- a/apps/documentations/d8-ugmk-prod/kustomization.yaml
+++ b/apps/documentations/d8-ugmk-prod/kustomization.yaml
@@ -16,4 +16,8 @@ patches:
- path: pdf-markings-amqp.yaml
target:
kind: HelmRelease
- name: documentations-pdf-markings-amqp
\ No newline at end of file
+ name: documentations-pdf-markings-amqp
+ - path: cde-api.yaml
+ target:
+ kind: HelmRelease
+ name: cde-api
\ No newline at end of file
diff --git a/apps/documentations/ugok/cde-api-worker-copy.yaml b/apps/documentations/ugok/cde-api-worker-copy.yaml
new file mode 100644
index 0000000..0b1044b
--- /dev/null
+++ b/apps/documentations/ugok/cde-api-worker-copy.yaml
@@ -0,0 +1,388 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2
+kind: HelmRelease
+metadata:
+ name: cde-api-worker-copy
+ namespace: documentations
+spec:
+ interval: 10m
+ chart:
+ spec:
+ chart: universal-chart
+ version: "0.1.9"
+ sourceRef:
+ kind: HelmRepository
+ name: yc-oci-charts
+ namespace: flux-system
+ interval: 10m
+ install:
+ remediation:
+ retries: 3
+ upgrade:
+ remediation:
+ retries: 3
+ values:
+ global:
+ env: _default
+ services:
+ worker-copy:
+ enabled: true
+ deployment:
+ enabled: true
+ name:
+ _default: worker-copy
+ replicaCount:
+ _default: 1
+ revisionHistoryLimit:
+ _default: 5
+ resources:
+ requests:
+ cpu:
+ _default: 100m
+ memory:
+ _default: 64Mi
+ image:
+ name:
+ _default: 10.4.10.187:80/library/cde-api-worker-copy:ugok_c9bc246
+ pullPolicy:
+ _default: IfNotPresent
+ service:
+ enabled: false
+ imagePullSecrets:
+ enabled:
+ _default: true
+ name:
+ _default: dockerhub
+ envs:
+ - name: CDE_API_EAV_HOST
+ value:
+ _default: "http://eav-service.eav.svc.cluster.local:8000"
+ - name: CDE_API_APP_NAME
+ value:
+ _default: "worker-copy"
+ - name: CDE_API_SENTRY_DSN
+ value:
+ _default: ""
+ - name: CDE_API_SENTRY_ENVIRONMENT
+ value:
+ _default: ""
+ - name: CDE_API_LOG_LEVEL
+ value:
+ _default: "info"
+ - name: CDE_API_OBSERVABILITY_ENABLE
+ value:
+ _default: "true"
+ - name: CDE_API_OBSERVABILITY_HOST
+ value:
+ _default: "signoz-otel-collector-external.signoz.svc.cluster.local"
+ - name: CDE_API_OBSERVABILITY_PORT
+ value:
+ _default: "4317"
+ - name: CDE_API_S3_MAX_SINGLE_UPLOAD_SIZE
+ value:
+ _default: "5368709120"
+ - name: CDE_API_S3_MAX_PART_SIZE
+ value:
+ _default: "524288000"
+ - name: CDE_API_S3_UPLOAD_STALL_TIMEOUT
+ value:
+ _default: "10m"
+ - name: CDE_API_OBSERVABILITY_SERVICE_NAME
+ value:
+ _default: "worker-copy"
+ - name: CDE_API_SYSTEMLOG_BASE_URL
+ value:
+ _default: "http://api-service.system-log.svc.cluster.local:8000"
+ - name: CDE_API_SYSTEMLOG_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_DATABASE__SSLMODE
+ value:
+ _default: "disable"
+ - name: CDE_API_DATABASE__INSECURE_SKIP_TLS
+ value:
+ _default: "false"
+ - name: CDE_API_DATABASE_MAX_CONN_LIFETIME
+ value:
+ _default: "30m"
+ - name: CDE_API_DATABASE_MAX_CONN_IDLE_TIME
+ value:
+ _default: "10m"
+ - name: CDE_API_DATABASE_HEALTH_CHECK_PERIOD
+ value:
+ _default: "30s"
+ - name: CDE_API_DATABASE_POOL_SIZE
+ value:
+ _default: "3"
+ - name: CDE_API_REDIS__SSL
+ value:
+ _default: "false"
+ - name: CDE_API_REDIS__POOL_SIZE
+ value:
+ _default: "5"
+ - name: CDE_API_REDIS__MIN_IDLE_CONNS
+ value:
+ _default: "1"
+ - name: CDE_API_REDIS__DIAL_TIMEOUT_MS
+ value:
+ _default: "5000"
+ - name: CDE_API_REDIS__READ_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__WRITE_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__DEFAULT_TTL_MINUTES
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__PERMISSION_CACHE_ENABLED
+ value:
+ _default: "false"
+ - name: CDE_API_S3_USE_SSL
+ value:
+ _default: "true"
+ - name: CDE_API_S3_BUCKET_LOOKUP
+ value:
+ _default: "auto"
+ - name: CDE_API_S3_INSECURE_SKIP_TLS
+ value:
+ _default: "true"
+ - name: CDE_API_S3_CHECK_BUCKET
+ value:
+ _default: "false"
+ - name: CDE_API_S3_BUCKET_NAME
+ value:
+ _default: "documentations-prod"
+ - name: CDE_API_ZEEBE_USE_PLAINTEXT
+ value:
+ _default: "true"
+ - name: CDE_API_MAILER_BASE_URL
+ value:
+ _default: "http://mailer-service.mailer:8000"
+ - name: CDE_API_MAILER_FROM_EMAIL
+ value:
+ _default: "noreply@sarex.io"
+ - name: CDE_API_WORKFLOW_BASE_URL
+ value:
+ _default: "http://workflows-api-service.workflow.svc.cluster.local:8000"
+ - name: CDE_API_WORKFLOW_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_WORKFLOW_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_BIMAPI_URL
+ value:
+ _default: "http://backend-svc.bim.svc.cluster.local:8000"
+ - name: CDE_API_BIMAPI_V2_URL
+ value:
+ _default: "http://backend-svc.bim.svc.cluster.local:8000"
+ - name: CDE_API_BIMAPI_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_BIMAPI_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_BIMAPI_TIMEOUT_V2_MS
+ value:
+ _default: "300000"
+ - name: CDE_API_CONTAINER_REGISTRY
+ value:
+ _default: "cr.yandex/crp3ccidau046kdj8g9q"
+ - name: CDE_API_WORKFLOWS_IMAGES_VERSION
+ value:
+ _default: "master"
+ - name: CDE_API_DJANGO_HOST
+ value:
+ _default: "http://backend.django.svc.cluster.local:8000"
+ - name: CDE_API_ENVIRONMENT
+ value:
+ _default: "production"
+ - name: CDE_API_CONVERTED_PDF_TO_S3
+ value:
+ _default: "true"
+ - name: CDE_API_CONVERT_DXF_TO_GEOJSON
+ value:
+ _default: "true"
+ - name: CDE_API_CONVERT_DWG_TO_GEOJSON
+ value:
+ _default: "true"
+ - name: CDE_API_USE_BIMV1_FOR_BIMV2
+ value:
+ _default: "true"
+ - name: CDE_API_LAST_MASTER_BIM
+ value:
+ _default: "36311"
+ - name: CDE_API_LAST_SLAVE_1_BIM
+ value:
+ _default: "94015"
+ - name: CDE_API_LAST_SLAVE_2_BIM
+ value:
+ _default: "135771"
+ - name: CDE_API_USE_BIM_INSERTER
+ value:
+ _default: "true"
+ - name: CDE_API_USE_LEGACY_BIM_FLOW
+ value:
+ _default: "0"
+ - name: CDE_API_DOCUMENTATION_V2_URL
+ value:
+ _default: "http://documentations-api.documentations.svc.cluster.local:8080"
+ - name: CDE_API_INTERNAL_URL
+ value:
+ _default: "http://cde-api.documentations:8000"
+ - name: CDE_API_FLOWS_URL
+ value:
+ _default: "http://backend-service.flows.svc.cluster.local:8000"
+ - name: CDE_API_TRANSMITTALS_URL
+ value:
+ _default: "http://transmittal-service.transmittal.svc.cluster.local:80"
+ - name: CDE_API_WORKFLOWS_CONFIG_FILEPATH
+ value:
+ _default: "/etc/app/tasks_execution_config.json"
+ - name: CDE_API_WORKSPACE_BASE_URL
+ value:
+ _default: "http://backend-svc.workspaces.svc.cluster.local:8000"
+ - name: CDE_API_WORKSPACE_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_WORKSPACE_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_RABBITMQ__MARKS_ROUTING_KEY
+ value:
+ _default: "pdf_markings_input"
+ - name: CDE_API_RABBITMQ__HASHER_ROUTING_KEY
+ value:
+ _default: "hash.compute.normal"
+ - name: CDE_API_RABBITMQ__HASHER_EXCHANGE
+ value:
+ _default: "hash.compute"
+ - name: CDE_API_ISSUES_SYNC_ENABLED
+ value:
+ _default: "false"
+ - name: CDE_API_ISSUES_BASE_URL
+ value:
+ _default: "http://issues-service.platform:8000"
+ - name: CDE_API_ISSUES_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_ISSUES_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_COPY_WORKER_JOBS
+ value:
+ _default: ""
+ - name: CDE_API_COPY_JOB_TIMEOUT_MINUTES
+ value:
+ _default: "30"
+ - name: CDE_API_COPY_STEP_PARALLELISM
+ value:
+ _default: "1"
+ - name: CDE_API_COPY_S3_PARALLELISM
+ value:
+ _default: "1"
+ - name: CDE_API_REDIS__HOST
+ value:
+ _default: "redis"
+ - name: CDE_API_REDIS__PORT
+ value:
+ _default: "6379"
+ - name: CDE_API_DATABASE__HOST
+ value:
+ _default: "postgres-service"
+ - name: CDE_API_DATABASE__PORT
+ value:
+ _default: "5432"
+ - name: CDE_API_DATABASE__NAME
+ value:
+ _default: "documentations_db"
+ secretEnvs:
+ - name: CDE_API_DATABASE__USER
+ secretName:
+ _default: "documentations-postgresql-secret"
+ secretKey:
+ _default: "username"
+ - name: CDE_API_DATABASE__PASSWORD
+ secretName:
+ _default: "documentations-postgresql-secret"
+ secretKey:
+ _default: "password"
+ - name: CDE_API_S3_ENDPOINT
+ secretName:
+ _default: "documentations-s3-secret"
+ secretKey:
+ _default: "endpoint"
+ - name: CDE_API_S3_ACCESS_KEY
+ secretName:
+ _default: "documentations-s3-secret"
+ secretKey:
+ _default: "access_key"
+ - name: CDE_API_S3_SECRET_KEY
+ secretName:
+ _default: "documentations-s3-secret"
+ secretKey:
+ _default: "secret_key"
+ - name: CDE_API_ZEEBE_GATEWAY_ADDRESS
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "gateway_address"
+ - name: CDE_API_ZEEBE_CLIENT_ID
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_id"
+ - name: CDE_API_ZEEBE_CLIENT_SECRET
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_secret"
+ - name: CDE_API_ZEEBE_AUTH_SERVER_URL
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "auth_server_url"
+ - name: CDE_API_RABBITMQ__HOST
+ secretName:
+ _default: "documentations-rabbitmq-secret"
+ secretKey:
+ _default: "host"
+ - name: CDE_API_RABBITMQ__PORT
+ secretName:
+ _default: "documentations-rabbitmq-secret"
+ secretKey:
+ _default: "port"
+ - name: CDE_API_RABBITMQ__USER
+ secretName:
+ _default: "documentations-rabbitmq-secret"
+ secretKey:
+ _default: "username"
+ - name: CDE_API_RABBITMQ__PASSWORD
+ secretName:
+ _default: "documentations-rabbitmq-secret"
+ secretKey:
+ _default: "password"
+ - name: CDE_API_RABBITMQ__VHOST
+ secretName:
+ _default: "documentations-rabbitmq-secret"
+ secretKey:
+ _default: "vhost"
+ volumes:
+ _default:
+ - name: tasks-execution-config
+ mountPath:
+ _default: /etc/app/tasks_execution_config.json
+ subPath:
+ _default: tasks_execution_config.json
+ readOnly:
+ _default: true
+ configMap:
+ name:
+ _default: tasks-execution-config-documentation-v2
+ items:
+ - key: tasks-execution-config-documentation-v2.json
+ path:
+ _default: tasks_execution_config.json
+ defaultMode:
+ _default: "0644"
diff --git a/apps/documentations/ugok/cde-api-worker-move.yaml b/apps/documentations/ugok/cde-api-worker-move.yaml
new file mode 100644
index 0000000..93c6d03
--- /dev/null
+++ b/apps/documentations/ugok/cde-api-worker-move.yaml
@@ -0,0 +1,370 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2
+kind: HelmRelease
+metadata:
+ name: cde-api-worker-move
+ namespace: documentations
+spec:
+ interval: 10m
+ chart:
+ spec:
+ chart: universal-chart
+ version: "0.1.9"
+ sourceRef:
+ kind: HelmRepository
+ name: yc-oci-charts
+ namespace: flux-system
+ interval: 10m
+ install:
+ remediation:
+ retries: 3
+ upgrade:
+ remediation:
+ retries: 3
+ values:
+ global:
+ env: _default
+ services:
+ worker-move:
+ enabled: true
+ deployment:
+ enabled: true
+ name:
+ _default: worker-move
+ replicaCount:
+ _default: 1
+ revisionHistoryLimit:
+ _default: 5
+ resources:
+ requests:
+ cpu:
+ _default: 100m
+ memory:
+ _default: 64Mi
+ image:
+ name:
+ _default: 10.4.10.187:80/library/cde-api-worker-move:ugok_c9bc246
+ pullPolicy:
+ _default: IfNotPresent
+ service:
+ enabled: false
+ imagePullSecrets:
+ enabled:
+ _default: true
+ name:
+ _default: dockerhub
+ envs:
+ - name: CDE_API_EAV_HOST
+ value:
+ _default: "http://eav-service.eav.svc.cluster.local:8000"
+ - name: CDE_API_APP_NAME
+ value:
+ _default: "worker-move"
+ - name: CDE_API_SENTRY_DSN
+ value:
+ _default: ""
+ - name: CDE_API_SENTRY_ENVIRONMENT
+ value:
+ _default: ""
+ - name: CDE_API_LOG_LEVEL
+ value:
+ _default: "info"
+ - name: CDE_API_OBSERVABILITY_ENABLE
+ value:
+ _default: "true"
+ - name: CDE_API_OBSERVABILITY_HOST
+ value:
+ _default: "signoz-otel-collector-external.signoz.svc.cluster.local"
+ - name: CDE_API_OBSERVABILITY_PORT
+ value:
+ _default: "4317"
+ - name: CDE_API_S3_MAX_SINGLE_UPLOAD_SIZE
+ value:
+ _default: "5368709120"
+ - name: CDE_API_S3_MAX_PART_SIZE
+ value:
+ _default: "524288000"
+ - name: CDE_API_S3_UPLOAD_STALL_TIMEOUT
+ value:
+ _default: "10m"
+ - name: CDE_API_OBSERVABILITY_SERVICE_NAME
+ value:
+ _default: "worker-move"
+ - name: CDE_API_SYSTEMLOG_BASE_URL
+ value:
+ _default: "http://api-service.system-log.svc.cluster.local:8000"
+ - name: CDE_API_SYSTEMLOG_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_DATABASE__SSLMODE
+ value:
+ _default: "disable"
+ - name: CDE_API_DATABASE__INSECURE_SKIP_TLS
+ value:
+ _default: "false"
+ - name: CDE_API_DATABASE_MAX_CONN_LIFETIME
+ value:
+ _default: "30m"
+ - name: CDE_API_DATABASE_MAX_CONN_IDLE_TIME
+ value:
+ _default: "10m"
+ - name: CDE_API_DATABASE_HEALTH_CHECK_PERIOD
+ value:
+ _default: "30s"
+ - name: CDE_API_DATABASE_POOL_SIZE
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__SSL
+ value:
+ _default: "false"
+ - name: CDE_API_REDIS__POOL_SIZE
+ value:
+ _default: "5"
+ - name: CDE_API_REDIS__MIN_IDLE_CONNS
+ value:
+ _default: "1"
+ - name: CDE_API_REDIS__DIAL_TIMEOUT_MS
+ value:
+ _default: "5000"
+ - name: CDE_API_REDIS__READ_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__WRITE_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__DEFAULT_TTL_MINUTES
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__PERMISSION_CACHE_ENABLED
+ value:
+ _default: "false"
+ - name: CDE_API_S3_USE_SSL
+ value:
+ _default: "true"
+ - name: CDE_API_S3_BUCKET_LOOKUP
+ value:
+ _default: "auto"
+ - name: CDE_API_S3_INSECURE_SKIP_TLS
+ value:
+ _default: "true"
+ - name: CDE_API_S3_CHECK_BUCKET
+ value:
+ _default: "false"
+ - name: CDE_API_S3_BUCKET_NAME
+ value:
+ _default: "documentations-prod"
+ - name: CDE_API_ZEEBE_USE_PLAINTEXT
+ value:
+ _default: "true"
+ - name: CDE_API_MAILER_BASE_URL
+ value:
+ _default: "http://mailer-service.mailer:8000"
+ - name: CDE_API_MAILER_FROM_EMAIL
+ value:
+ _default: "noreply@sarex.io"
+ - name: CDE_API_WORKFLOW_BASE_URL
+ value:
+ _default: "http://workflows-api-service.workflow.svc.cluster.local:8000"
+ - name: CDE_API_WORKFLOW_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_WORKFLOW_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_BIMAPI_URL
+ value:
+ _default: "http://backend-svc.bim.svc.cluster.local:8000"
+ - name: CDE_API_BIMAPI_V2_URL
+ value:
+ _default: "http://backend-svc.bim.svc.cluster.local:8000"
+ - name: CDE_API_BIMAPI_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_BIMAPI_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_BIMAPI_TIMEOUT_V2_MS
+ value:
+ _default: "300000"
+ - name: CDE_API_CONTAINER_REGISTRY
+ value:
+ _default: "cr.yandex/crp3ccidau046kdj8g9q"
+ - name: CDE_API_WORKFLOWS_IMAGES_VERSION
+ value:
+ _default: "master"
+ - name: CDE_API_DJANGO_HOST
+ value:
+ _default: "http://backend.django.svc.cluster.local:8000"
+ - name: CDE_API_ENVIRONMENT
+ value:
+ _default: "production"
+ - name: CDE_API_CONVERTED_PDF_TO_S3
+ value:
+ _default: "true"
+ - name: CDE_API_CONVERT_DXF_TO_GEOJSON
+ value:
+ _default: "true"
+ - name: CDE_API_CONVERT_DWG_TO_GEOJSON
+ value:
+ _default: "true"
+ - name: CDE_API_USE_BIMV1_FOR_BIMV2
+ value:
+ _default: "true"
+ - name: CDE_API_LAST_MASTER_BIM
+ value:
+ _default: "36311"
+ - name: CDE_API_LAST_SLAVE_1_BIM
+ value:
+ _default: "94015"
+ - name: CDE_API_LAST_SLAVE_2_BIM
+ value:
+ _default: "135771"
+ - name: CDE_API_USE_BIM_INSERTER
+ value:
+ _default: "true"
+ - name: CDE_API_USE_LEGACY_BIM_FLOW
+ value:
+ _default: "0"
+ - name: CDE_API_DOCUMENTATION_V2_URL
+ value:
+ _default: "http://documentations-api.documentations.svc.cluster.local:8080"
+ - name: CDE_API_INTERNAL_URL
+ value:
+ _default: "http://cde-api.documentations:8000"
+ - name: CDE_API_FLOWS_URL
+ value:
+ _default: "http://backend-service.flows.svc.cluster.local:8000"
+ - name: CDE_API_TRANSMITTALS_URL
+ value:
+ _default: "http://transmittal-service.transmittal.svc.cluster.local:80"
+ - name: CDE_API_WORKFLOWS_CONFIG_FILEPATH
+ value:
+ _default: "/etc/app/tasks_execution_config.json"
+ - name: CDE_API_WORKSPACE_BASE_URL
+ value:
+ _default: "http://backend-svc.workspaces.svc.cluster.local:8000"
+ - name: CDE_API_WORKSPACE_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_WORKSPACE_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_RABBITMQ__MARKS_ROUTING_KEY
+ value:
+ _default: "pdf_markings_input"
+ - name: CDE_API_RABBITMQ__HASHER_ROUTING_KEY
+ value:
+ _default: "hash.compute.normal"
+ - name: CDE_API_RABBITMQ__HASHER_EXCHANGE
+ value:
+ _default: "hash.compute"
+ - name: CDE_API_MOVE_WORKER_JOBS
+ value:
+ _default: ""
+ - name: CDE_API_MOVE_JOB_TIMEOUT_MINUTES
+ value:
+ _default: "30"
+ - name: CDE_API_REDIS__HOST
+ value:
+ _default: "redis"
+ - name: CDE_API_REDIS__PORT
+ value:
+ _default: "6379"
+ - name: CDE_API_DATABASE__HOST
+ value:
+ _default: "postgres-service"
+ - name: CDE_API_DATABASE__PORT
+ value:
+ _default: "5432"
+ - name: CDE_API_DATABASE__NAME
+ value:
+ _default: "documentations_db"
+ secretEnvs:
+ - name: CDE_API_DATABASE__USER
+ secretName:
+ _default: "documentations-postgresql-secret"
+ secretKey:
+ _default: "username"
+ - name: CDE_API_DATABASE__PASSWORD
+ secretName:
+ _default: "documentations-postgresql-secret"
+ secretKey:
+ _default: "password"
+ - name: CDE_API_S3_ENDPOINT
+ secretName:
+ _default: "documentations-s3-secret"
+ secretKey:
+ _default: "endpoint"
+ - name: CDE_API_S3_ACCESS_KEY
+ secretName:
+ _default: "documentations-s3-secret"
+ secretKey:
+ _default: "access_key"
+ - name: CDE_API_S3_SECRET_KEY
+ secretName:
+ _default: "documentations-s3-secret"
+ secretKey:
+ _default: "secret_key"
+ - name: CDE_API_ZEEBE_GATEWAY_ADDRESS
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "gateway_address"
+ - name: CDE_API_ZEEBE_CLIENT_ID
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_id"
+ - name: CDE_API_ZEEBE_CLIENT_SECRET
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_secret"
+ - name: CDE_API_ZEEBE_AUTH_SERVER_URL
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "auth_server_url"
+ - name: CDE_API_RABBITMQ__HOST
+ secretName:
+ _default: "documentations-rabbitmq-secret"
+ secretKey:
+ _default: "host"
+ - name: CDE_API_RABBITMQ__PORT
+ secretName:
+ _default: "documentations-rabbitmq-secret"
+ secretKey:
+ _default: "port"
+ - name: CDE_API_RABBITMQ__USER
+ secretName:
+ _default: "documentations-rabbitmq-secret"
+ secretKey:
+ _default: "username"
+ - name: CDE_API_RABBITMQ__PASSWORD
+ secretName:
+ _default: "documentations-rabbitmq-secret"
+ secretKey:
+ _default: "password"
+ - name: CDE_API_RABBITMQ__VHOST
+ secretName:
+ _default: "documentations-rabbitmq-secret"
+ secretKey:
+ _default: "vhost"
+ volumes:
+ _default:
+ - name: tasks-execution-config
+ mountPath:
+ _default: /etc/app/tasks_execution_config.json
+ subPath:
+ _default: tasks_execution_config.json
+ readOnly:
+ _default: true
+ configMap:
+ name:
+ _default: tasks-execution-config-documentation-v2
+ items:
+ - key: tasks-execution-config-documentation-v2.json
+ path:
+ _default: tasks_execution_config.json
+ defaultMode:
+ _default: "0644"
diff --git a/apps/documentations/ugok/cde-api-worker-s32d-create-upload.yaml b/apps/documentations/ugok/cde-api-worker-s32d-create-upload.yaml
new file mode 100644
index 0000000..04411c9
--- /dev/null
+++ b/apps/documentations/ugok/cde-api-worker-s32d-create-upload.yaml
@@ -0,0 +1,258 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2
+kind: HelmRelease
+metadata:
+ name: cde-api-worker-s32d-create-upload
+ namespace: documentations
+spec:
+ interval: 10m
+ chart:
+ spec:
+ chart: universal-chart
+ version: "0.1.9"
+ sourceRef:
+ kind: HelmRepository
+ name: yc-oci-charts
+ namespace: flux-system
+ interval: 10m
+ install:
+ remediation:
+ retries: 3
+ upgrade:
+ remediation:
+ retries: 3
+ values:
+ global:
+ env: _default
+ services:
+ worker-s32d-create-upload:
+ enabled: true
+ deployment:
+ enabled: true
+ name:
+ _default: worker-s32d-create-upload
+ replicaCount:
+ _default: 1
+ revisionHistoryLimit:
+ _default: 5
+ resources:
+ requests:
+ cpu:
+ _default: 200m
+ memory:
+ _default: 256Mi
+ image:
+ name:
+ _default: 10.4.10.187:80/library/cde-api-worker-s32d-create-upload:ugok_c9bc246
+ pullPolicy:
+ _default: IfNotPresent
+ service:
+ enabled: false
+ imagePullSecrets:
+ enabled:
+ _default: true
+ name:
+ _default: dockerhub
+ envs:
+ - name: CDE_API_EAV_HOST
+ value:
+ _default: "http://eav-service.eav.svc.cluster.local:8000"
+ - name: CDE_API_APP_NAME
+ value:
+ _default: "worker-s32d-create-upload"
+ - name: CDE_API_SENTRY_DSN
+ value:
+ _default: ""
+ - name: CDE_API_SENTRY_ENVIRONMENT
+ value:
+ _default: ""
+ - name: CDE_API_LOG_LEVEL
+ value:
+ _default: "info"
+ - name: CDE_API_OBSERVABILITY_ENABLE
+ value:
+ _default: "true"
+ - name: CDE_API_OBSERVABILITY_HOST
+ value:
+ _default: "signoz-otel-collector-external.signoz.svc.cluster.local"
+ - name: CDE_API_OBSERVABILITY_PORT
+ value:
+ _default: "4317"
+ - name: CDE_API_S3_MAX_SINGLE_UPLOAD_SIZE
+ value:
+ _default: "5368709120"
+ - name: CDE_API_S3_MAX_PART_SIZE
+ value:
+ _default: "524288000"
+ - name: CDE_API_S3_UPLOAD_STALL_TIMEOUT
+ value:
+ _default: "10m"
+ - name: CDE_API_OBSERVABILITY_SERVICE_NAME
+ value:
+ _default: "worker-s32d-create-upload"
+ - name: CDE_API_DATABASE__SSLMODE
+ value:
+ _default: "disable"
+ - name: CDE_API_DATABASE__INSECURE_SKIP_TLS
+ value:
+ _default: "false"
+ - name: CDE_API_DATABASE_MAX_CONN_LIFETIME
+ value:
+ _default: "30m"
+ - name: CDE_API_DATABASE_MAX_CONN_IDLE_TIME
+ value:
+ _default: "10m"
+ - name: CDE_API_DATABASE_HEALTH_CHECK_PERIOD
+ value:
+ _default: "30s"
+ - name: CDE_API_DATABASE_POOL_SIZE
+ value:
+ _default: "3"
+ - name: CDE_API_REDIS__SSL
+ value:
+ _default: "false"
+ - name: CDE_API_REDIS__POOL_SIZE
+ value:
+ _default: "5"
+ - name: CDE_API_REDIS__MIN_IDLE_CONNS
+ value:
+ _default: "1"
+ - name: CDE_API_REDIS__DIAL_TIMEOUT_MS
+ value:
+ _default: "5000"
+ - name: CDE_API_REDIS__READ_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__WRITE_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__DEFAULT_TTL_MINUTES
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__PERMISSION_CACHE_ENABLED
+ value:
+ _default: "false"
+ - name: CDE_API_S3_USE_SSL
+ value:
+ _default: "true"
+ - name: CDE_API_S3_BUCKET_LOOKUP
+ value:
+ _default: "auto"
+ - name: CDE_API_S3_INSECURE_SKIP_TLS
+ value:
+ _default: "true"
+ - name: CDE_API_S3_CHECK_BUCKET
+ value:
+ _default: "false"
+ - name: CDE_API_S3_BUCKET_NAME
+ value:
+ _default: "documentations-prod"
+ - name: CDE_API_ZEEBE_USE_PLAINTEXT
+ value:
+ _default: "true"
+ - name: CDE_API_S32D_READERAT_BLOCK_SIZE_MB
+ value:
+ _default: "8"
+ - name: CDE_API_S32D_READERAT_CACHE_BLOCKS
+ value:
+ _default: "8"
+ - name: CDE_API_S32D_WORKER_CREATE_UPLOAD_TIMEOUT_MIN
+ value:
+ _default: "240"
+ - name: CDE_API_S32D_WORKER_CREATE_UPLOAD_MAX_JOBS
+ value:
+ _default: "2"
+ - name: CDE_API_MAILER_BASE_URL
+ value:
+ _default: "http://mailer-service.mailer:8000"
+ - name: CDE_API_MAILER_FROM_EMAIL
+ value:
+ _default: "noreply@sarex.io"
+ - name: CDE_API_FLOWS_URL
+ value:
+ _default: "http://backend-service.flows.svc.cluster.local:8000"
+ - name: CDE_API_TRANSMITTALS_URL
+ value:
+ _default: "http://transmittal-service.transmittal.svc.cluster.local:80"
+ - name: CDE_API_WORKFLOWS_CONFIG_FILEPATH
+ value:
+ _default: "/etc/app/tasks_execution_config.json"
+ - name: CDE_API_REDIS__HOST
+ value:
+ _default: "redis"
+ - name: CDE_API_REDIS__PORT
+ value:
+ _default: "6379"
+ - name: CDE_API_DATABASE__HOST
+ value:
+ _default: "postgres-service"
+ - name: CDE_API_DATABASE__PORT
+ value:
+ _default: "5432"
+ - name: CDE_API_DATABASE__NAME
+ value:
+ _default: "documentations_db"
+ secretEnvs:
+ - name: CDE_API_DATABASE__USER
+ secretName:
+ _default: "documentations-postgresql-secret"
+ secretKey:
+ _default: "username"
+ - name: CDE_API_DATABASE__PASSWORD
+ secretName:
+ _default: "documentations-postgresql-secret"
+ secretKey:
+ _default: "password"
+ - name: CDE_API_S3_ENDPOINT
+ secretName:
+ _default: "documentations-s3-secret"
+ secretKey:
+ _default: "endpoint"
+ - name: CDE_API_S3_ACCESS_KEY
+ secretName:
+ _default: "documentations-s3-secret"
+ secretKey:
+ _default: "access_key"
+ - name: CDE_API_S3_SECRET_KEY
+ secretName:
+ _default: "documentations-s3-secret"
+ secretKey:
+ _default: "secret_key"
+ - name: CDE_API_ZEEBE_GATEWAY_ADDRESS
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "gateway_address"
+ - name: CDE_API_ZEEBE_CLIENT_ID
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_id"
+ - name: CDE_API_ZEEBE_CLIENT_SECRET
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_secret"
+ - name: CDE_API_ZEEBE_AUTH_SERVER_URL
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "auth_server_url"
+ volumes:
+ _default:
+ - name: tasks-execution-config
+ mountPath:
+ _default: /etc/app/tasks_execution_config.json
+ subPath:
+ _default: tasks_execution_config.json
+ readOnly:
+ _default: true
+ configMap:
+ name:
+ _default: tasks-execution-config-documentation-v2
+ items:
+ - key: tasks-execution-config-documentation-v2.json
+ path:
+ _default: tasks_execution_config.json
+ defaultMode:
+ _default: "0644"
diff --git a/apps/documentations/ugok/cde-api-worker-s32d-handle-error.yaml b/apps/documentations/ugok/cde-api-worker-s32d-handle-error.yaml
new file mode 100644
index 0000000..8578e44
--- /dev/null
+++ b/apps/documentations/ugok/cde-api-worker-s32d-handle-error.yaml
@@ -0,0 +1,252 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2
+kind: HelmRelease
+metadata:
+ name: cde-api-worker-s32d-handle-error
+ namespace: documentations
+spec:
+ interval: 10m
+ chart:
+ spec:
+ chart: universal-chart
+ version: "0.1.9"
+ sourceRef:
+ kind: HelmRepository
+ name: yc-oci-charts
+ namespace: flux-system
+ interval: 10m
+ install:
+ remediation:
+ retries: 3
+ upgrade:
+ remediation:
+ retries: 3
+ values:
+ global:
+ env: _default
+ services:
+ worker-s32d-handle-error:
+ enabled: true
+ deployment:
+ enabled: true
+ name:
+ _default: worker-s32d-handle-error
+ replicaCount:
+ _default: 1
+ revisionHistoryLimit:
+ _default: 5
+ resources:
+ requests:
+ cpu:
+ _default: 50m
+ memory:
+ _default: 64Mi
+ image:
+ name:
+ _default: 10.4.10.187:80/library/cde-api-worker-s32d-handle-error:ugok_c9bc246
+ pullPolicy:
+ _default: IfNotPresent
+ service:
+ enabled: false
+ imagePullSecrets:
+ enabled:
+ _default: true
+ name:
+ _default: dockerhub
+ envs:
+ - name: CDE_API_EAV_HOST
+ value:
+ _default: "http://eav-service.eav.svc.cluster.local:8000"
+ - name: CDE_API_APP_NAME
+ value:
+ _default: "worker-s32d-handle-error"
+ - name: CDE_API_SENTRY_DSN
+ value:
+ _default: ""
+ - name: CDE_API_SENTRY_ENVIRONMENT
+ value:
+ _default: ""
+ - name: CDE_API_LOG_LEVEL
+ value:
+ _default: "info"
+ - name: CDE_API_OBSERVABILITY_ENABLE
+ value:
+ _default: "true"
+ - name: CDE_API_OBSERVABILITY_HOST
+ value:
+ _default: "signoz-otel-collector-external.signoz.svc.cluster.local"
+ - name: CDE_API_OBSERVABILITY_PORT
+ value:
+ _default: "4317"
+ - name: CDE_API_S3_MAX_SINGLE_UPLOAD_SIZE
+ value:
+ _default: "5368709120"
+ - name: CDE_API_S3_MAX_PART_SIZE
+ value:
+ _default: "524288000"
+ - name: CDE_API_S3_UPLOAD_STALL_TIMEOUT
+ value:
+ _default: "10m"
+ - name: CDE_API_OBSERVABILITY_SERVICE_NAME
+ value:
+ _default: "worker-s32d-handle-error"
+ - name: CDE_API_DATABASE__SSLMODE
+ value:
+ _default: "disable"
+ - name: CDE_API_DATABASE__INSECURE_SKIP_TLS
+ value:
+ _default: "false"
+ - name: CDE_API_DATABASE_MAX_CONN_LIFETIME
+ value:
+ _default: "30m"
+ - name: CDE_API_DATABASE_MAX_CONN_IDLE_TIME
+ value:
+ _default: "10m"
+ - name: CDE_API_DATABASE_HEALTH_CHECK_PERIOD
+ value:
+ _default: "30s"
+ - name: CDE_API_DATABASE_POOL_SIZE
+ value:
+ _default: "2"
+ - name: CDE_API_REDIS__SSL
+ value:
+ _default: "false"
+ - name: CDE_API_REDIS__POOL_SIZE
+ value:
+ _default: "3"
+ - name: CDE_API_REDIS__MIN_IDLE_CONNS
+ value:
+ _default: "1"
+ - name: CDE_API_REDIS__DIAL_TIMEOUT_MS
+ value:
+ _default: "5000"
+ - name: CDE_API_REDIS__READ_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__WRITE_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__DEFAULT_TTL_MINUTES
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__PERMISSION_CACHE_ENABLED
+ value:
+ _default: "false"
+ - name: CDE_API_S3_USE_SSL
+ value:
+ _default: "true"
+ - name: CDE_API_S3_BUCKET_LOOKUP
+ value:
+ _default: "auto"
+ - name: CDE_API_S3_INSECURE_SKIP_TLS
+ value:
+ _default: "true"
+ - name: CDE_API_S3_CHECK_BUCKET
+ value:
+ _default: "false"
+ - name: CDE_API_S3_BUCKET_NAME
+ value:
+ _default: "documentations-prod"
+ - name: CDE_API_ZEEBE_USE_PLAINTEXT
+ value:
+ _default: "true"
+ - name: CDE_API_S32D_WORKER_HANDLE_ERROR_TIMEOUT_MIN
+ value:
+ _default: "10"
+ - name: CDE_API_S32D_WORKER_HANDLE_ERROR_MAX_JOBS
+ value:
+ _default: "4"
+ - name: CDE_API_MAILER_BASE_URL
+ value:
+ _default: "http://mailer-service.mailer:8000"
+ - name: CDE_API_MAILER_FROM_EMAIL
+ value:
+ _default: "noreply@sarex.io"
+ - name: CDE_API_FLOWS_URL
+ value:
+ _default: "http://backend-service.flows.svc.cluster.local:8000"
+ - name: CDE_API_TRANSMITTALS_URL
+ value:
+ _default: "http://transmittal-service.transmittal.svc.cluster.local:80"
+ - name: CDE_API_WORKFLOWS_CONFIG_FILEPATH
+ value:
+ _default: "/etc/app/tasks_execution_config.json"
+ - name: CDE_API_REDIS__HOST
+ value:
+ _default: "redis"
+ - name: CDE_API_REDIS__PORT
+ value:
+ _default: "6379"
+ - name: CDE_API_DATABASE__HOST
+ value:
+ _default: "postgres-service"
+ - name: CDE_API_DATABASE__PORT
+ value:
+ _default: "5432"
+ - name: CDE_API_DATABASE__NAME
+ value:
+ _default: "documentations_db"
+ secretEnvs:
+ - name: CDE_API_DATABASE__USER
+ secretName:
+ _default: "documentations-postgresql-secret"
+ secretKey:
+ _default: "username"
+ - name: CDE_API_DATABASE__PASSWORD
+ secretName:
+ _default: "documentations-postgresql-secret"
+ secretKey:
+ _default: "password"
+ - name: CDE_API_S3_ENDPOINT
+ secretName:
+ _default: "documentations-s3-secret"
+ secretKey:
+ _default: "endpoint"
+ - name: CDE_API_S3_ACCESS_KEY
+ secretName:
+ _default: "documentations-s3-secret"
+ secretKey:
+ _default: "access_key"
+ - name: CDE_API_S3_SECRET_KEY
+ secretName:
+ _default: "documentations-s3-secret"
+ secretKey:
+ _default: "secret_key"
+ - name: CDE_API_ZEEBE_GATEWAY_ADDRESS
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "gateway_address"
+ - name: CDE_API_ZEEBE_CLIENT_ID
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_id"
+ - name: CDE_API_ZEEBE_CLIENT_SECRET
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_secret"
+ - name: CDE_API_ZEEBE_AUTH_SERVER_URL
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "auth_server_url"
+ volumes:
+ _default:
+ - name: tasks-execution-config
+ mountPath:
+ _default: /etc/app/tasks_execution_config.json
+ subPath:
+ _default: tasks_execution_config.json
+ readOnly:
+ _default: true
+ configMap:
+ name:
+ _default: tasks-execution-config-documentation-v2
+ items:
+ - key: tasks-execution-config-documentation-v2.json
+ path:
+ _default: tasks_execution_config.json
+ defaultMode:
+ _default: "0644"
diff --git a/apps/documentations/ugok/cde-api-worker-s32d-process-workflows.yaml b/apps/documentations/ugok/cde-api-worker-s32d-process-workflows.yaml
new file mode 100644
index 0000000..994208c
--- /dev/null
+++ b/apps/documentations/ugok/cde-api-worker-s32d-process-workflows.yaml
@@ -0,0 +1,321 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2
+kind: HelmRelease
+metadata:
+ name: cde-api-worker-s32d-process-workflows
+ namespace: documentations
+spec:
+ interval: 10m
+ chart:
+ spec:
+ chart: universal-chart
+ version: "0.1.9"
+ sourceRef:
+ kind: HelmRepository
+ name: yc-oci-charts
+ namespace: flux-system
+ interval: 10m
+ install:
+ remediation:
+ retries: 3
+ upgrade:
+ remediation:
+ retries: 3
+ values:
+ global:
+ env: _default
+ services:
+ worker-s32d-process-workflows:
+ enabled: true
+ deployment:
+ enabled: true
+ name:
+ _default: worker-s32d-process-workflows
+ replicaCount:
+ _default: 1
+ revisionHistoryLimit:
+ _default: 5
+ resources:
+ requests:
+ cpu:
+ _default: 200m
+ memory:
+ _default: 256Mi
+ image:
+ name:
+ _default: 10.4.10.187:80/library/cde-api-worker-s32d-process-workflows:ugok_c9bc246
+ pullPolicy:
+ _default: IfNotPresent
+ service:
+ enabled: false
+ imagePullSecrets:
+ enabled:
+ _default: true
+ name:
+ _default: dockerhub
+ envs:
+ - name: CDE_API_EAV_HOST
+ value:
+ _default: "http://eav-service.eav.svc.cluster.local:8000"
+ - name: CDE_API_APP_NAME
+ value:
+ _default: "worker-s32d-process-workflows"
+ - name: CDE_API_SENTRY_DSN
+ value:
+ _default: ""
+ - name: CDE_API_SENTRY_ENVIRONMENT
+ value:
+ _default: ""
+ - name: CDE_API_LOG_LEVEL
+ value:
+ _default: "info"
+ - name: CDE_API_OBSERVABILITY_ENABLE
+ value:
+ _default: "true"
+ - name: CDE_API_OBSERVABILITY_HOST
+ value:
+ _default: "signoz-otel-collector-external.signoz.svc.cluster.local"
+ - name: CDE_API_OBSERVABILITY_PORT
+ value:
+ _default: "4317"
+ - name: CDE_API_S3_MAX_SINGLE_UPLOAD_SIZE
+ value:
+ _default: "5368709120"
+ - name: CDE_API_S3_MAX_PART_SIZE
+ value:
+ _default: "524288000"
+ - name: CDE_API_S3_UPLOAD_STALL_TIMEOUT
+ value:
+ _default: "10m"
+ - name: CDE_API_OBSERVABILITY_SERVICE_NAME
+ value:
+ _default: "worker-s32d-process-workflows"
+ - name: CDE_API_DATABASE__SSLMODE
+ value:
+ _default: "disable"
+ - name: CDE_API_DATABASE__INSECURE_SKIP_TLS
+ value:
+ _default: "false"
+ - name: CDE_API_DATABASE_MAX_CONN_LIFETIME
+ value:
+ _default: "30m"
+ - name: CDE_API_DATABASE_MAX_CONN_IDLE_TIME
+ value:
+ _default: "10m"
+ - name: CDE_API_DATABASE_HEALTH_CHECK_PERIOD
+ value:
+ _default: "30s"
+ - name: CDE_API_DATABASE_POOL_SIZE
+ value:
+ _default: "3"
+ - name: CDE_API_REDIS__SSL
+ value:
+ _default: "false"
+ - name: CDE_API_REDIS__POOL_SIZE
+ value:
+ _default: "5"
+ - name: CDE_API_REDIS__MIN_IDLE_CONNS
+ value:
+ _default: "1"
+ - name: CDE_API_REDIS__DIAL_TIMEOUT_MS
+ value:
+ _default: "5000"
+ - name: CDE_API_REDIS__READ_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__WRITE_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__DEFAULT_TTL_MINUTES
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__PERMISSION_CACHE_ENABLED
+ value:
+ _default: "false"
+ - name: CDE_API_S3_USE_SSL
+ value:
+ _default: "true"
+ - name: CDE_API_S3_BUCKET_LOOKUP
+ value:
+ _default: "auto"
+ - name: CDE_API_S3_INSECURE_SKIP_TLS
+ value:
+ _default: "true"
+ - name: CDE_API_S3_CHECK_BUCKET
+ value:
+ _default: "false"
+ - name: CDE_API_S3_BUCKET_NAME
+ value:
+ _default: "documentations-prod"
+ - name: CDE_API_ZEEBE_USE_PLAINTEXT
+ value:
+ _default: "true"
+ - name: CDE_API_S32D_WORKER_PROCESS_WORKFLOWS_TIMEOUT_MIN
+ value:
+ _default: "480"
+ - name: CDE_API_S32D_WORKER_PROCESS_WORKFLOWS_MAX_JOBS
+ value:
+ _default: "2"
+ - name: CDE_API_MAILER_BASE_URL
+ value:
+ _default: "http://mailer-service.mailer:8000"
+ - name: CDE_API_MAILER_FROM_EMAIL
+ value:
+ _default: "noreply@sarex.io"
+ - name: CDE_API_WORKFLOW_BASE_URL
+ value:
+ _default: "http://workflows-api-service.workflow.svc.cluster.local:8000"
+ - name: CDE_API_WORKFLOW_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_WORKFLOW_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_BIMAPI_URL
+ value:
+ _default: "http://backend-svc.bim.svc.cluster.local:8000"
+ - name: CDE_API_BIMAPI_V2_URL
+ value:
+ _default: "http://backend-svc.bim.svc.cluster.local:8000"
+ - name: CDE_API_BIMAPI_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_BIMAPI_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_BIMAPI_TIMEOUT_V2_MS
+ value:
+ _default: "300000"
+ - name: CDE_API_CONTAINER_REGISTRY
+ value:
+ _default: "cr.yandex/crp3ccidau046kdj8g9q"
+ - name: CDE_API_WORKFLOWS_IMAGES_VERSION
+ value:
+ _default: "master"
+ - name: CDE_API_DJANGO_HOST
+ value:
+ _default: "http://backend.django.svc.cluster.local:8000"
+ - name: CDE_API_ENVIRONMENT
+ value:
+ _default: "production"
+ - name: CDE_API_CONVERTED_PDF_TO_S3
+ value:
+ _default: "true"
+ - name: CDE_API_CONVERT_DXF_TO_GEOJSON
+ value:
+ _default: "true"
+ - name: CDE_API_CONVERT_DWG_TO_GEOJSON
+ value:
+ _default: "true"
+ - name: CDE_API_USE_BIMV1_FOR_BIMV2
+ value:
+ _default: "true"
+ - name: CDE_API_LAST_MASTER_BIM
+ value:
+ _default: "36311"
+ - name: CDE_API_LAST_SLAVE_1_BIM
+ value:
+ _default: "94015"
+ - name: CDE_API_LAST_SLAVE_2_BIM
+ value:
+ _default: "135771"
+ - name: CDE_API_USE_BIM_INSERTER
+ value:
+ _default: "true"
+ - name: CDE_API_USE_LEGACY_BIM_FLOW
+ value:
+ _default: "0"
+ - name: CDE_API_DOCUMENTATION_V2_URL
+ value:
+ _default: "http://documentations-api.documentations.svc.cluster.local:8080"
+ - name: CDE_API_INTERNAL_URL
+ value:
+ _default: "http://cde-api.documentations:8000"
+ - name: CDE_API_FLOWS_URL
+ value:
+ _default: "http://backend-service.flows.svc.cluster.local:8000"
+ - name: CDE_API_TRANSMITTALS_URL
+ value:
+ _default: "http://transmittal-service.transmittal.svc.cluster.local:80"
+ - name: CDE_API_WORKFLOWS_CONFIG_FILEPATH
+ value:
+ _default: "/etc/app/tasks_execution_config.json"
+ - name: CDE_API_REDIS__HOST
+ value:
+ _default: "redis"
+ - name: CDE_API_REDIS__PORT
+ value:
+ _default: "6379"
+ - name: CDE_API_DATABASE__HOST
+ value:
+ _default: "postgres-service"
+ - name: CDE_API_DATABASE__PORT
+ value:
+ _default: "5432"
+ - name: CDE_API_DATABASE__NAME
+ value:
+ _default: "documentations_db"
+ secretEnvs:
+ - name: CDE_API_DATABASE__USER
+ secretName:
+ _default: "documentations-postgresql-secret"
+ secretKey:
+ _default: "username"
+ - name: CDE_API_DATABASE__PASSWORD
+ secretName:
+ _default: "documentations-postgresql-secret"
+ secretKey:
+ _default: "password"
+ - name: CDE_API_S3_ENDPOINT
+ secretName:
+ _default: "documentations-s3-secret"
+ secretKey:
+ _default: "endpoint"
+ - name: CDE_API_S3_ACCESS_KEY
+ secretName:
+ _default: "documentations-s3-secret"
+ secretKey:
+ _default: "access_key"
+ - name: CDE_API_S3_SECRET_KEY
+ secretName:
+ _default: "documentations-s3-secret"
+ secretKey:
+ _default: "secret_key"
+ - name: CDE_API_ZEEBE_GATEWAY_ADDRESS
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "gateway_address"
+ - name: CDE_API_ZEEBE_CLIENT_ID
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_id"
+ - name: CDE_API_ZEEBE_CLIENT_SECRET
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_secret"
+ - name: CDE_API_ZEEBE_AUTH_SERVER_URL
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "auth_server_url"
+ volumes:
+ _default:
+ - name: tasks-execution-config
+ mountPath:
+ _default: /etc/app/tasks_execution_config.json
+ subPath:
+ _default: tasks_execution_config.json
+ readOnly:
+ _default: true
+ configMap:
+ name:
+ _default: tasks-execution-config-documentation-v2
+ items:
+ - key: tasks-execution-config-documentation-v2.json
+ path:
+ _default: tasks_execution_config.json
+ defaultMode:
+ _default: "0644"
diff --git a/apps/documentations/ugok/cde-api-worker-s32d-publish-documents.yaml b/apps/documentations/ugok/cde-api-worker-s32d-publish-documents.yaml
new file mode 100644
index 0000000..5b05a83
--- /dev/null
+++ b/apps/documentations/ugok/cde-api-worker-s32d-publish-documents.yaml
@@ -0,0 +1,267 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2
+kind: HelmRelease
+metadata:
+ name: cde-api-worker-s32d-publish-documents
+ namespace: documentations
+spec:
+ interval: 10m
+ chart:
+ spec:
+ chart: universal-chart
+ version: "0.1.9"
+ sourceRef:
+ kind: HelmRepository
+ name: yc-oci-charts
+ namespace: flux-system
+ interval: 10m
+ install:
+ remediation:
+ retries: 3
+ upgrade:
+ remediation:
+ retries: 3
+ values:
+ global:
+ env: _default
+ services:
+ worker-s32d-publish-documents:
+ enabled: true
+ deployment:
+ enabled: true
+ name:
+ _default: worker-s32d-publish-documents
+ replicaCount:
+ _default: 1
+ revisionHistoryLimit:
+ _default: 5
+ resources:
+ requests:
+ cpu:
+ _default: 100m
+ memory:
+ _default: 64Mi
+ image:
+ name:
+ _default: 10.4.10.187:80/library/cde-api-worker-s32d-publish-documents:ugok_c9bc246
+ pullPolicy:
+ _default: IfNotPresent
+ service:
+ enabled: false
+ imagePullSecrets:
+ enabled:
+ _default: true
+ name:
+ _default: dockerhub
+ envs:
+ - name: CDE_API_EAV_HOST
+ value:
+ _default: "http://eav-service.eav.svc.cluster.local:8000"
+ - name: CDE_API_APP_NAME
+ value:
+ _default: "worker-s32d-publish-documents"
+ - name: CDE_API_SENTRY_DSN
+ value:
+ _default: ""
+ - name: CDE_API_SENTRY_ENVIRONMENT
+ value:
+ _default: ""
+ - name: CDE_API_LOG_LEVEL
+ value:
+ _default: "info"
+ - name: CDE_API_OBSERVABILITY_ENABLE
+ value:
+ _default: "true"
+ - name: CDE_API_OBSERVABILITY_HOST
+ value:
+ _default: "signoz-otel-collector-external.signoz.svc.cluster.local"
+ - name: CDE_API_OBSERVABILITY_PORT
+ value:
+ _default: "4317"
+ - name: CDE_API_S3_MAX_SINGLE_UPLOAD_SIZE
+ value:
+ _default: "5368709120"
+ - name: CDE_API_S3_MAX_PART_SIZE
+ value:
+ _default: "524288000"
+ - name: CDE_API_S3_UPLOAD_STALL_TIMEOUT
+ value:
+ _default: "10m"
+ - name: CDE_API_OBSERVABILITY_SERVICE_NAME
+ value:
+ _default: "worker-s32d-publish-documents"
+ - name: CDE_API_DATABASE__SSLMODE
+ value:
+ _default: "disable"
+ - name: CDE_API_DATABASE__INSECURE_SKIP_TLS
+ value:
+ _default: "false"
+ - name: CDE_API_DATABASE_MAX_CONN_LIFETIME
+ value:
+ _default: "30m"
+ - name: CDE_API_DATABASE_MAX_CONN_IDLE_TIME
+ value:
+ _default: "10m"
+ - name: CDE_API_DATABASE_HEALTH_CHECK_PERIOD
+ value:
+ _default: "30s"
+ - name: CDE_API_DATABASE_POOL_SIZE
+ value:
+ _default: "3"
+ - name: CDE_API_REDIS__SSL
+ value:
+ _default: "false"
+ - name: CDE_API_REDIS__POOL_SIZE
+ value:
+ _default: "5"
+ - name: CDE_API_REDIS__MIN_IDLE_CONNS
+ value:
+ _default: "1"
+ - name: CDE_API_REDIS__DIAL_TIMEOUT_MS
+ value:
+ _default: "5000"
+ - name: CDE_API_REDIS__READ_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__WRITE_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__DEFAULT_TTL_MINUTES
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__PERMISSION_CACHE_ENABLED
+ value:
+ _default: "false"
+ - name: CDE_API_S3_USE_SSL
+ value:
+ _default: "true"
+ - name: CDE_API_S3_BUCKET_LOOKUP
+ value:
+ _default: "auto"
+ - name: CDE_API_S3_INSECURE_SKIP_TLS
+ value:
+ _default: "true"
+ - name: CDE_API_S3_CHECK_BUCKET
+ value:
+ _default: "false"
+ - name: CDE_API_S3_BUCKET_NAME
+ value:
+ _default: "documentations-prod"
+ - name: CDE_API_ZEEBE_USE_PLAINTEXT
+ value:
+ _default: "true"
+ - name: CDE_API_S32D_WORKER_PUBLISH_DOCUMENTS_TIMEOUT_MIN
+ value:
+ _default: "10"
+ - name: CDE_API_S32D_WORKER_PUBLISH_DOCUMENTS_MAX_JOBS
+ value:
+ _default: "2"
+ - name: CDE_API_MAILER_BASE_URL
+ value:
+ _default: "http://mailer-service.mailer:8000"
+ - name: CDE_API_MAILER_FROM_EMAIL
+ value:
+ _default: "noreply@sarex.io"
+ - name: CDE_API_SYSTEMLOG_BASE_URL
+ value:
+ _default: "http://api-service.system-log.svc.cluster.local:8000"
+ - name: CDE_API_SYSTEMLOG_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_FLOWS_URL
+ value:
+ _default: "http://backend-service.flows.svc.cluster.local:8000"
+ - name: CDE_API_TRANSMITTALS_URL
+ value:
+ _default: "http://transmittal-service.transmittal.svc.cluster.local:80"
+ - name: CDE_API_WORKSPACE_BASE_URL
+ value:
+ _default: "http://backend-svc.workspaces.svc.cluster.local:8000"
+ - name: CDE_API_WORKSPACE_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_WORKSPACE_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_WORKFLOWS_CONFIG_FILEPATH
+ value:
+ _default: "/etc/app/tasks_execution_config.json"
+ - name: CDE_API_REDIS__HOST
+ value:
+ _default: "redis"
+ - name: CDE_API_REDIS__PORT
+ value:
+ _default: "6379"
+ - name: CDE_API_DATABASE__HOST
+ value:
+ _default: "postgres-service"
+ - name: CDE_API_DATABASE__PORT
+ value:
+ _default: "5432"
+ - name: CDE_API_DATABASE__NAME
+ value:
+ _default: "documentations_db"
+ secretEnvs:
+ - name: CDE_API_DATABASE__USER
+ secretName:
+ _default: "documentations-postgresql-secret"
+ secretKey:
+ _default: "username"
+ - name: CDE_API_DATABASE__PASSWORD
+ secretName:
+ _default: "documentations-postgresql-secret"
+ secretKey:
+ _default: "password"
+ - name: CDE_API_S3_ENDPOINT
+ secretName:
+ _default: "documentations-s3-secret"
+ secretKey:
+ _default: "endpoint"
+ - name: CDE_API_S3_ACCESS_KEY
+ secretName:
+ _default: "documentations-s3-secret"
+ secretKey:
+ _default: "access_key"
+ - name: CDE_API_S3_SECRET_KEY
+ secretName:
+ _default: "documentations-s3-secret"
+ secretKey:
+ _default: "secret_key"
+ - name: CDE_API_ZEEBE_GATEWAY_ADDRESS
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "gateway_address"
+ - name: CDE_API_ZEEBE_CLIENT_ID
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_id"
+ - name: CDE_API_ZEEBE_CLIENT_SECRET
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_secret"
+ - name: CDE_API_ZEEBE_AUTH_SERVER_URL
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "auth_server_url"
+ volumes:
+ _default:
+ - name: tasks-execution-config
+ mountPath:
+ _default: /etc/app/tasks_execution_config.json
+ subPath:
+ _default: tasks_execution_config.json
+ readOnly:
+ _default: true
+ configMap:
+ name:
+ _default: tasks-execution-config-documentation-v2
+ items:
+ - key: tasks-execution-config-documentation-v2.json
+ path:
+ _default: tasks_execution_config.json
+ defaultMode:
+ _default: "0644"
diff --git a/apps/documentations/ugok/cde-api.yaml b/apps/documentations/ugok/cde-api.yaml
new file mode 100644
index 0000000..1a33be3
--- /dev/null
+++ b/apps/documentations/ugok/cde-api.yaml
@@ -0,0 +1,458 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2
+kind: HelmRelease
+metadata:
+ name: cde-api
+ namespace: documentations
+spec:
+ interval: 10m
+ chart:
+ spec:
+ chart: universal-chart
+ version: "0.1.9"
+ sourceRef:
+ kind: HelmRepository
+ name: yc-oci-charts
+ namespace: flux-system
+ interval: 10m
+ install:
+ remediation:
+ retries: 3
+ upgrade:
+ remediation:
+ retries: 3
+ values:
+ global:
+ env: _default
+ services:
+ cde-api:
+ enabled: true
+ deployment:
+ enabled: true
+ name:
+ _default: cde-api
+ replicaCount:
+ _default: 1
+ revisionHistoryLimit:
+ _default: 5
+ port:
+ _default: 8000
+ resources:
+ requests:
+ cpu:
+ _default: 200m
+ memory:
+ _default: 256Mi
+ image:
+ name:
+ _default: 10.4.10.187:80/library/cde-api:ugok_c9bc246
+ pullPolicy:
+ _default: IfNotPresent
+ service:
+ enabled: true
+ name:
+ _default: cde-api
+ type:
+ _default: ClusterIP
+ port:
+ _default: 8000
+ targetPort:
+ _default: 8000
+ portName:
+ _default: http
+ imagePullSecrets:
+ enabled:
+ _default: true
+ name:
+ _default: dockerhub
+ envs:
+ - name: CDE_API_RESOURCES_BASE_URL
+ value:
+ _default: "http://iams.iam.svc.cluster.local:8080"
+ - name: CDE_API_RESOURCES_TIMEOUT
+ value:
+ _default: "10s"
+ - name: CDE_API_APP_NAME
+ value:
+ _default: "cde-api"
+ - name: CDE_API_SENTRY_DSN
+ value:
+ _default: ""
+ - name: CDE_API_SENTRY_ENVIRONMENT
+ value:
+ _default: ""
+ - name: CDE_API_LOG_LEVEL
+ value:
+ _default: "debug"
+ - name: CDE_API_HTTP_PORT
+ value:
+ _default: "8000"
+ - name: CDE_API_HTTP_READ_TIMEOUT
+ value:
+ _default: "0s"
+ - name: CDE_API_HTTP_WRITE_TIMEOUT
+ value:
+ _default: "0s"
+ - name: CDE_API_HTTP_IDLE_TIMEOUT
+ value:
+ _default: "120s"
+ - name: CDE_API_HTTP_READ_BUFFER_SIZE
+ value:
+ _default: "96"
+ - name: CDE_API_OBSERVABILITY_ENABLE
+ value:
+ _default: "true"
+ - name: CDE_API_OBSERVABILITY_HOST
+ value:
+ _default: "signoz-otel-collector-external.signoz.svc.cluster.local"
+ - name: CDE_API_OBSERVABILITY_PORT
+ value:
+ _default: "4317"
+ - name: CDE_API_S3_MAX_SINGLE_UPLOAD_SIZE
+ value:
+ _default: "5368709120"
+ - name: CDE_API_S3_MAX_PART_SIZE
+ value:
+ _default: "524288000"
+ - name: CDE_API_S3_UPLOAD_STALL_TIMEOUT
+ value:
+ _default: "10m"
+ - name: CDE_API_PUBLIC_LINK_HOST
+ value:
+ _default: "https://ugok-document-link-sarex.uralmine.com"
+ - name: CDE_API_WORKFLOW_BASE_URL
+ value:
+ _default: "http://workflows-api-service.workflow.svc.cluster.local:8000"
+ - name: CDE_API_WORKFLOW_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_WORKFLOW_RETRY_WAIT_MS
+ value:
+ _default: "500"
+ - name: CDE_API_WORKFLOW_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_BIMAPI_URL
+ value:
+ _default: "http://backend-svc.bim.svc.cluster.local:8000"
+ - name: CDE_API_BIMAPI_V2_URL
+ value:
+ _default: "http://backend-svc.bim.svc.cluster.local:8000"
+ - name: CDE_API_BIMAPI_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_BIMAPI_RETRY_WAIT_MS
+ value:
+ _default: "1000"
+ - name: CDE_API_BIMAPI_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_BIMAPI_TIMEOUT_V2_MS
+ value:
+ _default: "300000"
+ - name: CDE_API_WORKSPACE_BASE_URL
+ value:
+ _default: "http://backend-svc.workspaces.svc.cluster.local:8000"
+ - name: CDE_API_WORKSPACE_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_WORKSPACE_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_SYSTEMLOG_BASE_URL
+ value:
+ _default: "http://api-service.system-log.svc.cluster.local:8000"
+ - name: CDE_API_SYSTEMLOG_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_CONTAINER_REGISTRY
+ value:
+ _default: "cr.yandex/crp3ccidau046kdj8g9q"
+ - name: CDE_API_WORKFLOWS_IMAGES_VERSION
+ value:
+ _default: "master"
+ - name: CDE_API_DJANGO_HOST
+ value:
+ _default: "http://backend.django.svc.cluster.local:8000"
+ - name: CDE_API_ENVIRONMENT
+ value:
+ _default: "production"
+ - name: CDE_API_CONVERTED_PDF_TO_S3
+ value:
+ _default: "true"
+ - name: CDE_API_CONVERT_DXF_TO_GEOJSON
+ value:
+ _default: "true"
+ - name: CDE_API_CONVERT_DWG_TO_GEOJSON
+ value:
+ _default: "true"
+ - name: CDE_API_USE_BIMV1_FOR_BIMV2
+ value:
+ _default: "true"
+ - name: CDE_API_EAV_HOST
+ value:
+ _default: "http://eav-service.eav.svc.cluster.local:8000"
+ - name: CDE_API_EAV_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_DOCUMENTATION_V2_URL
+ value:
+ _default: "http://documentations-api.documentations.svc.cluster.local:8080"
+ - name: CDE_API_INTERNAL_URL
+ value:
+ _default: "http://cde-api.documentations:8000"
+ - name: CDE_API_COPY_MAX_SYNC_WAIT_MS
+ value:
+ _default: "300000"
+ - name: CDE_API_LAST_MASTER_BIM
+ value:
+ _default: "36311"
+ - name: CDE_API_LAST_SLAVE_1_BIM
+ value:
+ _default: "94015"
+ - name: CDE_API_LAST_SLAVE_2_BIM
+ value:
+ _default: "135771"
+ - name: CDE_API_USE_BIM_INSERTER
+ value:
+ _default: "true"
+ - name: CDE_API_USE_LEGACY_BIM_FLOW
+ value:
+ _default: "0"
+ - name: CDE_API_DATABASE_MAX_CONN_LIFETIME
+ value:
+ _default: "30m"
+ - name: CDE_API_DATABASE_MAX_CONN_IDLE_TIME
+ value:
+ _default: "10m"
+ - name: CDE_API_DATABASE_HEALTH_CHECK_PERIOD
+ value:
+ _default: "30s"
+ - name: CDE_API_DATABASE_POOL_SIZE
+ value:
+ _default: "10"
+ - name: CDE_API_DIAGNOSTICS_SLOW_OPERATION_THRESHOLD
+ value:
+ _default: "30s"
+ - name: CDE_API_DATABASE__SSLMODE
+ value:
+ _default: "disable"
+ - name: CDE_API_DATABASE__INSECURE_SKIP_TLS
+ value:
+ _default: "false"
+ - name: CDE_API_DATABASE_OBSERVABILITY_ENABLE
+ value:
+ _default: "true"
+ - name: CDE_API_REDIS__DB
+ value:
+ _default: "5"
+ - name: CDE_API_REDIS__SSL
+ value:
+ _default: "false"
+ - name: CDE_API_REDIS__POOL_SIZE
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__MIN_IDLE_CONNS
+ value:
+ _default: "2"
+ - name: CDE_API_REDIS__DIAL_TIMEOUT_MS
+ value:
+ _default: "5000"
+ - name: CDE_API_REDIS__READ_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__WRITE_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__DEFAULT_TTL_MINUTES
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__PERMISSION_CACHE_ENABLED
+ value:
+ _default: "false"
+ - name: CDE_API_S3_BUCKET_NAME
+ value:
+ _default: "documentations-prod"
+ - name: CDE_API_S3_USE_SSL
+ value:
+ _default: "true"
+ - name: CDE_API_S3_BUCKET_LOOKUP
+ value:
+ _default: "auto"
+ - name: CDE_API_S3_INSECURE_SKIP_TLS
+ value:
+ _default: "true"
+ - name: CDE_API_S3_CHECK_BUCKET
+ value:
+ _default: "false"
+ - name: CDE_API_S3_CONNECT_TIMEOUT
+ value:
+ _default: "10s"
+ - name: CDE_API_S3_TLS_HANDSHAKE_TIMEOUT
+ value:
+ _default: "10s"
+ - name: CDE_API_S32D_MAX_ARCHIVE_SIZE_BYTES
+ value:
+ _default: "1099511627776"
+ - name: CDE_API_S32D_MAX_FILES_COUNT
+ value:
+ _default: "500"
+ - name: CDE_API_ZEEBE_USE_PLAINTEXT
+ value:
+ _default: "true"
+ - name: CDE_API_USERS_BASE_URL
+ value:
+ _default: "http://backend.django.svc.cluster.local:8000"
+ - name: CDE_API_DISK_BUCKET_NAMESPACE
+ value:
+ _default: "documentations-prod"
+ - name: CDE_API_USERS_ORIGINATOR
+ value:
+ _default: "docs_prod"
+ - name: CDE_API_USERS_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_MAILER_BASE_URL
+ value:
+ _default: "http://mailer-service.mailer:8000"
+ - name: CDE_API_MAILER_FROM_EMAIL
+ value:
+ _default: "noreply@sarex.io"
+ - name: CDE_API_MAILER_RETRY_COUNT
+ value:
+ _default: "2"
+ - name: CDE_API_MAILER_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_FLOWS_URL
+ value:
+ _default: "http://backend-service.flows.svc.cluster.local:8000"
+ - name: CDE_API_TRANSMITTALS_URL
+ value:
+ _default: "http://transmittal-service.transmittal.svc.cluster.local:80"
+ - name: CDE_API_WORKFLOWS_CONFIG_FILEPATH
+ value:
+ _default: "/etc/app/tasks_execution_config.json"
+ - name: CDE_API_RABBITMQ__MARKS_ROUTING_KEY
+ value:
+ _default: "pdf_markings_input"
+ - name: CDE_API_RABBITMQ__HASHER_ROUTING_KEY
+ value:
+ _default: "hash.compute.normal"
+ - name: CDE_API_RABBITMQ__HASHER_EXCHANGE
+ value:
+ _default: "hash.compute"
+ - name: CDE_API_REDIS__HOST
+ value:
+ _default: "redis"
+ - name: CDE_API_REDIS__PORT
+ value:
+ _default: "6379"
+ - name: CDE_API_DATABASE__HOST
+ value:
+ _default: "postgres-service"
+ - name: CDE_API_DATABASE__PORT
+ value:
+ _default: "5432"
+ - name: CDE_API_DATABASE__NAME
+ value:
+ _default: "documentations_db"
+ secretEnvs:
+ - name: CDE_API_PUBLIC_KEY
+ secretName:
+ _default: "public-key"
+ secretKey:
+ _default: "key"
+ - name: CDE_API_DATABASE__USER
+ secretName:
+ _default: "documentations-postgresql-secret"
+ secretKey:
+ _default: "username"
+ - name: CDE_API_DATABASE__PASSWORD
+ secretName:
+ _default: "documentations-postgresql-secret"
+ secretKey:
+ _default: "password"
+ - name: CDE_API_S3_ENDPOINT
+ secretName:
+ _default: "documentations-s3-secret"
+ secretKey:
+ _default: "endpoint"
+ - name: CDE_API_S3_ACCESS_KEY
+ secretName:
+ _default: "documentations-s3-secret"
+ secretKey:
+ _default: "access_key"
+ - name: CDE_API_S3_SECRET_KEY
+ secretName:
+ _default: "documentations-s3-secret"
+ secretKey:
+ _default: "secret_key"
+ - name: CDE_API_ZEEBE_GATEWAY_ADDRESS
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "gateway_address"
+ - name: CDE_API_ZEEBE_CLIENT_ID
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_id"
+ - name: CDE_API_ZEEBE_CLIENT_SECRET
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_secret"
+ - name: CDE_API_ZEEBE_AUTH_SERVER_URL
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "auth_server_url"
+ - name: CDE_API_USERS_AUTH_TOKEN
+ secretName:
+ _default: "django-auth"
+ secretKey:
+ _default: "key"
+ - name: CDE_API_RABBITMQ__HOST
+ secretName:
+ _default: "documentations-rabbitmq-secret"
+ secretKey:
+ _default: "host"
+ - name: CDE_API_RABBITMQ__PORT
+ secretName:
+ _default: "documentations-rabbitmq-secret"
+ secretKey:
+ _default: "port"
+ - name: CDE_API_RABBITMQ__USER
+ secretName:
+ _default: "documentations-rabbitmq-secret"
+ secretKey:
+ _default: "username"
+ - name: CDE_API_RABBITMQ__PASSWORD
+ secretName:
+ _default: "documentations-rabbitmq-secret"
+ secretKey:
+ _default: "password"
+ - name: CDE_API_RABBITMQ__VHOST
+ secretName:
+ _default: "documentations-rabbitmq-secret"
+ secretKey:
+ _default: "vhost"
+ volumes:
+ _default:
+ - name: tasks-execution-config
+ mountPath:
+ _default: /etc/app/tasks_execution_config.json
+ subPath:
+ _default: tasks_execution_config.json
+ readOnly:
+ _default: true
+ configMap:
+ name:
+ _default: tasks-execution-config-documentation-v2
+ items:
+ - key: tasks-execution-config-documentation-v2.json
+ path:
+ _default: tasks_execution_config.json
+ defaultMode:
+ _default: "0644"
diff --git a/apps/documentations/ugok/kustomization.yaml b/apps/documentations/ugok/kustomization.yaml
index 7c68d88..b40c08a 100644
--- a/apps/documentations/ugok/kustomization.yaml
+++ b/apps/documentations/ugok/kustomization.yaml
@@ -13,3 +13,11 @@ resources:
- pdf-markings-amqp.yaml
- pdf-markings.yaml
- frontend.yaml
+ - tasks-execution-config.yaml
+ - cde-api.yaml
+ - cde-api-worker-s32d-create-upload.yaml
+ - cde-api-worker-s32d-process-workflows.yaml
+ - cde-api-worker-s32d-publish-documents.yaml
+ - cde-api-worker-s32d-handle-error.yaml
+ - cde-api-worker-copy.yaml
+ - cde-api-worker-move.yaml
diff --git a/apps/documentations/ugok/tasks-execution-config.yaml b/apps/documentations/ugok/tasks-execution-config.yaml
new file mode 100644
index 0000000..f4fa140
--- /dev/null
+++ b/apps/documentations/ugok/tasks-execution-config.yaml
@@ -0,0 +1,180 @@
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: tasks-execution-config-documentation-v2
+ namespace: documentations
+data:
+ tasks-execution-config-documentation-v2.json: |
+ {
+ "bim_api_metadata_inserter": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "bim_api_metadata_inserter_v2": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "bim_api_metadata_inserter_v4": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "bim_differ": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "bim_updater": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "convert_to_potree": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "docx_to_pdf": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "dwg_to_geojson": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_limits": "4",
+ "cpu_requests": "100m",
+ "memory_limits": "40Gi",
+ "memory_requests": "64Mi"
+ }
+ },
+ "e57_to_las": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "ifc_converter_job": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "las_merge": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "mesh_optimizer": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "mesh_optimizer_v2": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "parsing_template": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "processing_converter_to_tiles": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "processing_create_colored_surface_from_geotiff": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "rendering_template": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "split_pdf_document": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "split_pdf_document_legacy": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "update_orthomosaic_data": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "web_hook_caller": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "xml_to_glb": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "document_converter": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "sparkjs_converter_wrapper": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ }
+ }
diff --git a/apps/documentations/uralkal/cde-api.yaml b/apps/documentations/uralkal/cde-api.yaml
new file mode 100644
index 0000000..50fd1f4
--- /dev/null
+++ b/apps/documentations/uralkal/cde-api.yaml
@@ -0,0 +1,299 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2
+kind: HelmRelease
+metadata:
+ name: cde-api
+ namespace: documentations
+spec:
+ values:
+ services:
+ cde-api:
+ envs:
+ - name: CDE_API_RESOURCES_BASE_URL
+ value:
+ _default: "http://iams.iam.svc.cluster.local:8080"
+ - name: CDE_API_RESOURCES_TIMEOUT
+ value:
+ _default: "10s"
+ - name: CDE_API_APP_NAME
+ value:
+ _default: "cde-api"
+ - name: CDE_API_SENTRY_DSN
+ value:
+ _default: ""
+ - name: CDE_API_SENTRY_ENVIRONMENT
+ value:
+ _default: ""
+ - name: CDE_API_LOG_LEVEL
+ value:
+ _default: "debug"
+ - name: CDE_API_HTTP_PORT
+ value:
+ _default: "8000"
+ - name: CDE_API_HTTP_READ_TIMEOUT
+ value:
+ _default: "0s"
+ - name: CDE_API_HTTP_WRITE_TIMEOUT
+ value:
+ _default: "0s"
+ - name: CDE_API_HTTP_IDLE_TIMEOUT
+ value:
+ _default: "120s"
+ - name: CDE_API_HTTP_READ_BUFFER_SIZE
+ value:
+ _default: "96"
+ - name: CDE_API_OBSERVABILITY_ENABLE
+ value:
+ _default: "true"
+ - name: CDE_API_OBSERVABILITY_HOST
+ value:
+ _default: "signoz-otel-collector-external.signoz.svc.cluster.local"
+ - name: CDE_API_OBSERVABILITY_PORT
+ value:
+ _default: "4317"
+ - name: CDE_API_S3_MAX_SINGLE_UPLOAD_SIZE
+ value:
+ _default: "5368709120"
+ - name: CDE_API_S3_MAX_PART_SIZE
+ value:
+ _default: "524288000"
+ - name: CDE_API_S3_UPLOAD_STALL_TIMEOUT
+ value:
+ _default: "10m"
+ - name: CDE_API_PUBLIC_LINK_HOST
+ value:
+ _default: "https://document-link.sarex.local.uralkali.com"
+ - name: CDE_API_WORKFLOW_BASE_URL
+ value:
+ _default: "http://backend-svc.processing.svc.cluster.local:80"
+ - name: CDE_API_WORKFLOW_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_WORKFLOW_RETRY_WAIT_MS
+ value:
+ _default: "500"
+ - name: CDE_API_WORKFLOW_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_BIMAPI_URL
+ value:
+ _default: "http://backend-svc.bim.svc.cluster.local:80"
+ - name: CDE_API_BIMAPI_V2_URL
+ value:
+ _default: "http://backend-svc.bim.svc.cluster.local:80"
+ - name: CDE_API_BIMAPI_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_BIMAPI_RETRY_WAIT_MS
+ value:
+ _default: "1000"
+ - name: CDE_API_BIMAPI_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_BIMAPI_TIMEOUT_V2_MS
+ value:
+ _default: "300000"
+ - name: CDE_API_WORKSPACE_BASE_URL
+ value:
+ _default: "http://backend-svc.workspaces.svc.cluster.local:80"
+ - name: CDE_API_WORKSPACE_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_WORKSPACE_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_SYSTEMLOG_BASE_URL
+ value:
+ _default: "http://backend-svc.system-log.svc.cluster.local:80"
+ - name: CDE_API_SYSTEMLOG_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_CONTAINER_REGISTRY
+ value:
+ _default: "cr.yandex/crp3ccidau046kdj8g9q"
+ - name: CDE_API_WORKFLOWS_IMAGES_VERSION
+ value:
+ _default: "master"
+ - name: CDE_API_DJANGO_HOST
+ value:
+ _default: "http://backend-svc.django.svc.cluster.local:80"
+ - name: CDE_API_ENVIRONMENT
+ value:
+ _default: "production"
+ - name: CDE_API_CONVERTED_PDF_TO_S3
+ value:
+ _default: "true"
+ - name: CDE_API_CONVERT_DXF_TO_GEOJSON
+ value:
+ _default: "true"
+ - name: CDE_API_CONVERT_DWG_TO_GEOJSON
+ value:
+ _default: "true"
+ - name: CDE_API_USE_BIMV1_FOR_BIMV2
+ value:
+ _default: "true"
+ - name: CDE_API_EAV_HOST
+ value:
+ _default: "http://backend-svc.eav.svc.cluster.local:80"
+ - name: CDE_API_EAV_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_DOCUMENTATION_V2_URL
+ value:
+ _default: "http://backend-api-svc.documentations.svc.cluster.local:80"
+ - name: CDE_API_INTERNAL_URL
+ value:
+ _default: "http://cde-api.documentations:8000"
+ - name: CDE_API_COPY_MAX_SYNC_WAIT_MS
+ value:
+ _default: "300000"
+ - name: CDE_API_LAST_MASTER_BIM
+ value:
+ _default: "36311"
+ - name: CDE_API_LAST_SLAVE_1_BIM
+ value:
+ _default: "94015"
+ - name: CDE_API_LAST_SLAVE_2_BIM
+ value:
+ _default: "135771"
+ - name: CDE_API_USE_BIM_INSERTER
+ value:
+ _default: "true"
+ - name: CDE_API_USE_LEGACY_BIM_FLOW
+ value:
+ _default: "0"
+ - name: CDE_API_DATABASE_MAX_CONN_LIFETIME
+ value:
+ _default: "30m"
+ - name: CDE_API_DATABASE_MAX_CONN_IDLE_TIME
+ value:
+ _default: "10m"
+ - name: CDE_API_DATABASE_HEALTH_CHECK_PERIOD
+ value:
+ _default: "30s"
+ - name: CDE_API_DATABASE_POOL_SIZE
+ value:
+ _default: "10"
+ - name: CDE_API_DIAGNOSTICS_SLOW_OPERATION_THRESHOLD
+ value:
+ _default: "30s"
+ - name: CDE_API_DATABASE__SSLMODE
+ value:
+ _default: "disable"
+ - name: CDE_API_DATABASE__INSECURE_SKIP_TLS
+ value:
+ _default: "false"
+ - name: CDE_API_DATABASE_OBSERVABILITY_ENABLE
+ value:
+ _default: "true"
+ - name: CDE_API_REDIS__DB
+ value:
+ _default: "5"
+ - name: CDE_API_REDIS__SSL
+ value:
+ _default: "false"
+ - name: CDE_API_REDIS__POOL_SIZE
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__MIN_IDLE_CONNS
+ value:
+ _default: "2"
+ - name: CDE_API_REDIS__DIAL_TIMEOUT_MS
+ value:
+ _default: "5000"
+ - name: CDE_API_REDIS__READ_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__WRITE_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__DEFAULT_TTL_MINUTES
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__PERMISSION_CACHE_ENABLED
+ value:
+ _default: "false"
+ - name: CDE_API_S3_BUCKET_NAME
+ value:
+ _default: "documentations-prod"
+ - name: CDE_API_S3_USE_SSL
+ value:
+ _default: "true"
+ - name: CDE_API_S3_BUCKET_LOOKUP
+ value:
+ _default: "auto"
+ - name: CDE_API_S3_INSECURE_SKIP_TLS
+ value:
+ _default: "true"
+ - name: CDE_API_S3_CHECK_BUCKET
+ value:
+ _default: "false"
+ - name: CDE_API_S3_CONNECT_TIMEOUT
+ value:
+ _default: "10s"
+ - name: CDE_API_S3_TLS_HANDSHAKE_TIMEOUT
+ value:
+ _default: "10s"
+ - name: CDE_API_S32D_MAX_ARCHIVE_SIZE_BYTES
+ value:
+ _default: "1099511627776"
+ - name: CDE_API_S32D_MAX_FILES_COUNT
+ value:
+ _default: "500"
+ - name: CDE_API_ZEEBE_USE_PLAINTEXT
+ value:
+ _default: "true"
+ - name: CDE_API_USERS_BASE_URL
+ value:
+ _default: "http://backend-svc.django.svc.cluster.local:80"
+ - name: CDE_API_DISK_BUCKET_NAMESPACE
+ value:
+ _default: "documentations-prod"
+ - name: CDE_API_USERS_ORIGINATOR
+ value:
+ _default: "docs_prod"
+ - name: CDE_API_USERS_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_MAILER_BASE_URL
+ value:
+ _default: "http://mailer-service.mailer:8000"
+ - name: CDE_API_MAILER_FROM_EMAIL
+ value:
+ _default: "noreply@sarex.io"
+ - name: CDE_API_MAILER_RETRY_COUNT
+ value:
+ _default: "2"
+ - name: CDE_API_MAILER_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_FLOWS_URL
+ value:
+ _default: "http://backend-svc.flows.svc.cluster.local:80"
+ - name: CDE_API_TRANSMITTALS_URL
+ value:
+ _default: "http://transmittal-service.transmittal.svc.cluster.local:80"
+ - name: CDE_API_WORKFLOWS_CONFIG_FILEPATH
+ value:
+ _default: "/etc/app/tasks_execution_config.json"
+ - name: CDE_API_RABBITMQ__MARKS_ROUTING_KEY
+ value:
+ _default: "pdf_markings_input"
+ - name: CDE_API_RABBITMQ__HASHER_ROUTING_KEY
+ value:
+ _default: "hash.compute.normal"
+ - name: CDE_API_RABBITMQ__HASHER_EXCHANGE
+ value:
+ _default: "hash.compute"
+ - name: CDE_API_REDIS__HOST
+ value:
+ _default: "redis"
+ - name: CDE_API_REDIS__PORT
+ value:
+ _default: "6379"
+ - name: CDE_API_RABBITMQ__HOST
+ value:
+ _default: "rabbitmq.rabbitmq.svc.cluster.local"
+ - name: CDE_API_RABBITMQ__PORT
+ value:
+ _default: "5672"
diff --git a/apps/documentations/uralkal/kustomization.yaml b/apps/documentations/uralkal/kustomization.yaml
index 25b1091..07d5b30 100644
--- a/apps/documentations/uralkal/kustomization.yaml
+++ b/apps/documentations/uralkal/kustomization.yaml
@@ -27,3 +27,7 @@ patches:
target:
kind: HelmRelease
name: pdm-api
+ - path: cde-api.yaml
+ target:
+ kind: HelmRelease
+ name: cde-api
diff --git a/apps/documentations/vad/cde-api.yaml b/apps/documentations/vad/cde-api.yaml
new file mode 100644
index 0000000..4aac567
--- /dev/null
+++ b/apps/documentations/vad/cde-api.yaml
@@ -0,0 +1,299 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2
+kind: HelmRelease
+metadata:
+ name: cde-api
+ namespace: documentations
+spec:
+ values:
+ services:
+ cde-api:
+ envs:
+ - name: CDE_API_RESOURCES_BASE_URL
+ value:
+ _default: "http://iams.iam.svc.cluster.local:8080"
+ - name: CDE_API_RESOURCES_TIMEOUT
+ value:
+ _default: "10s"
+ - name: CDE_API_APP_NAME
+ value:
+ _default: "cde-api"
+ - name: CDE_API_SENTRY_DSN
+ value:
+ _default: ""
+ - name: CDE_API_SENTRY_ENVIRONMENT
+ value:
+ _default: ""
+ - name: CDE_API_LOG_LEVEL
+ value:
+ _default: "debug"
+ - name: CDE_API_HTTP_PORT
+ value:
+ _default: "8000"
+ - name: CDE_API_HTTP_READ_TIMEOUT
+ value:
+ _default: "0s"
+ - name: CDE_API_HTTP_WRITE_TIMEOUT
+ value:
+ _default: "0s"
+ - name: CDE_API_HTTP_IDLE_TIMEOUT
+ value:
+ _default: "120s"
+ - name: CDE_API_HTTP_READ_BUFFER_SIZE
+ value:
+ _default: "96"
+ - name: CDE_API_OBSERVABILITY_ENABLE
+ value:
+ _default: "true"
+ - name: CDE_API_OBSERVABILITY_HOST
+ value:
+ _default: "signoz-otel-collector-external.signoz.svc.cluster.local"
+ - name: CDE_API_OBSERVABILITY_PORT
+ value:
+ _default: "4317"
+ - name: CDE_API_S3_MAX_SINGLE_UPLOAD_SIZE
+ value:
+ _default: "5368709120"
+ - name: CDE_API_S3_MAX_PART_SIZE
+ value:
+ _default: "524288000"
+ - name: CDE_API_S3_UPLOAD_STALL_TIMEOUT
+ value:
+ _default: "10m"
+ - name: CDE_API_PUBLIC_LINK_HOST
+ value:
+ _default: "https://sarex-document-link.vadroad.ru"
+ - name: CDE_API_WORKFLOW_BASE_URL
+ value:
+ _default: "http://backend-svc.processing.svc.cluster.local:80"
+ - name: CDE_API_WORKFLOW_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_WORKFLOW_RETRY_WAIT_MS
+ value:
+ _default: "500"
+ - name: CDE_API_WORKFLOW_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_BIMAPI_URL
+ value:
+ _default: "http://backend-svc.bim.svc.cluster.local:80"
+ - name: CDE_API_BIMAPI_V2_URL
+ value:
+ _default: "http://backend-svc.bim.svc.cluster.local:80"
+ - name: CDE_API_BIMAPI_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_BIMAPI_RETRY_WAIT_MS
+ value:
+ _default: "1000"
+ - name: CDE_API_BIMAPI_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_BIMAPI_TIMEOUT_V2_MS
+ value:
+ _default: "300000"
+ - name: CDE_API_WORKSPACE_BASE_URL
+ value:
+ _default: "http://backend-svc.workspaces.svc.cluster.local:80"
+ - name: CDE_API_WORKSPACE_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_WORKSPACE_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_SYSTEMLOG_BASE_URL
+ value:
+ _default: "http://backend-svc.system-log.svc.cluster.local:80"
+ - name: CDE_API_SYSTEMLOG_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_CONTAINER_REGISTRY
+ value:
+ _default: "cr.yandex/crp3ccidau046kdj8g9q"
+ - name: CDE_API_WORKFLOWS_IMAGES_VERSION
+ value:
+ _default: "master"
+ - name: CDE_API_DJANGO_HOST
+ value:
+ _default: "http://backend-svc.django.svc.cluster.local:80"
+ - name: CDE_API_ENVIRONMENT
+ value:
+ _default: "production"
+ - name: CDE_API_CONVERTED_PDF_TO_S3
+ value:
+ _default: "true"
+ - name: CDE_API_CONVERT_DXF_TO_GEOJSON
+ value:
+ _default: "true"
+ - name: CDE_API_CONVERT_DWG_TO_GEOJSON
+ value:
+ _default: "true"
+ - name: CDE_API_USE_BIMV1_FOR_BIMV2
+ value:
+ _default: "true"
+ - name: CDE_API_EAV_HOST
+ value:
+ _default: "http://backend-svc.eav.svc.cluster.local:80"
+ - name: CDE_API_EAV_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_DOCUMENTATION_V2_URL
+ value:
+ _default: "http://backend-api-svc.documentations.svc.cluster.local:80"
+ - name: CDE_API_INTERNAL_URL
+ value:
+ _default: "http://cde-api.documentations:8000"
+ - name: CDE_API_COPY_MAX_SYNC_WAIT_MS
+ value:
+ _default: "300000"
+ - name: CDE_API_LAST_MASTER_BIM
+ value:
+ _default: "36311"
+ - name: CDE_API_LAST_SLAVE_1_BIM
+ value:
+ _default: "94015"
+ - name: CDE_API_LAST_SLAVE_2_BIM
+ value:
+ _default: "135771"
+ - name: CDE_API_USE_BIM_INSERTER
+ value:
+ _default: "true"
+ - name: CDE_API_USE_LEGACY_BIM_FLOW
+ value:
+ _default: "0"
+ - name: CDE_API_DATABASE_MAX_CONN_LIFETIME
+ value:
+ _default: "30m"
+ - name: CDE_API_DATABASE_MAX_CONN_IDLE_TIME
+ value:
+ _default: "10m"
+ - name: CDE_API_DATABASE_HEALTH_CHECK_PERIOD
+ value:
+ _default: "30s"
+ - name: CDE_API_DATABASE_POOL_SIZE
+ value:
+ _default: "10"
+ - name: CDE_API_DIAGNOSTICS_SLOW_OPERATION_THRESHOLD
+ value:
+ _default: "30s"
+ - name: CDE_API_DATABASE__SSLMODE
+ value:
+ _default: "disable"
+ - name: CDE_API_DATABASE__INSECURE_SKIP_TLS
+ value:
+ _default: "false"
+ - name: CDE_API_DATABASE_OBSERVABILITY_ENABLE
+ value:
+ _default: "true"
+ - name: CDE_API_REDIS__DB
+ value:
+ _default: "5"
+ - name: CDE_API_REDIS__SSL
+ value:
+ _default: "false"
+ - name: CDE_API_REDIS__POOL_SIZE
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__MIN_IDLE_CONNS
+ value:
+ _default: "2"
+ - name: CDE_API_REDIS__DIAL_TIMEOUT_MS
+ value:
+ _default: "5000"
+ - name: CDE_API_REDIS__READ_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__WRITE_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__DEFAULT_TTL_MINUTES
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__PERMISSION_CACHE_ENABLED
+ value:
+ _default: "false"
+ - name: CDE_API_S3_BUCKET_NAME
+ value:
+ _default: "documentations-prod"
+ - name: CDE_API_S3_USE_SSL
+ value:
+ _default: "true"
+ - name: CDE_API_S3_BUCKET_LOOKUP
+ value:
+ _default: "auto"
+ - name: CDE_API_S3_INSECURE_SKIP_TLS
+ value:
+ _default: "true"
+ - name: CDE_API_S3_CHECK_BUCKET
+ value:
+ _default: "false"
+ - name: CDE_API_S3_CONNECT_TIMEOUT
+ value:
+ _default: "10s"
+ - name: CDE_API_S3_TLS_HANDSHAKE_TIMEOUT
+ value:
+ _default: "10s"
+ - name: CDE_API_S32D_MAX_ARCHIVE_SIZE_BYTES
+ value:
+ _default: "1099511627776"
+ - name: CDE_API_S32D_MAX_FILES_COUNT
+ value:
+ _default: "500"
+ - name: CDE_API_ZEEBE_USE_PLAINTEXT
+ value:
+ _default: "true"
+ - name: CDE_API_USERS_BASE_URL
+ value:
+ _default: "http://backend-svc.django.svc.cluster.local:80"
+ - name: CDE_API_DISK_BUCKET_NAMESPACE
+ value:
+ _default: "documentations-prod"
+ - name: CDE_API_USERS_ORIGINATOR
+ value:
+ _default: "docs_prod"
+ - name: CDE_API_USERS_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_MAILER_BASE_URL
+ value:
+ _default: "http://mailer-service.mailer:8000"
+ - name: CDE_API_MAILER_FROM_EMAIL
+ value:
+ _default: "noreply@sarex.io"
+ - name: CDE_API_MAILER_RETRY_COUNT
+ value:
+ _default: "2"
+ - name: CDE_API_MAILER_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_FLOWS_URL
+ value:
+ _default: "http://backend-svc.flows.svc.cluster.local:80"
+ - name: CDE_API_TRANSMITTALS_URL
+ value:
+ _default: "http://transmittal-service.transmittal.svc.cluster.local:80"
+ - name: CDE_API_WORKFLOWS_CONFIG_FILEPATH
+ value:
+ _default: "/etc/app/tasks_execution_config.json"
+ - name: CDE_API_RABBITMQ__MARKS_ROUTING_KEY
+ value:
+ _default: "pdf_markings_input"
+ - name: CDE_API_RABBITMQ__HASHER_ROUTING_KEY
+ value:
+ _default: "hash.compute.normal"
+ - name: CDE_API_RABBITMQ__HASHER_EXCHANGE
+ value:
+ _default: "hash.compute"
+ - name: CDE_API_REDIS__HOST
+ value:
+ _default: "redis"
+ - name: CDE_API_REDIS__PORT
+ value:
+ _default: "6379"
+ - name: CDE_API_RABBITMQ__HOST
+ value:
+ _default: "rabbitmq.rabbitmq.svc.cluster.local"
+ - name: CDE_API_RABBITMQ__PORT
+ value:
+ _default: "5672"
diff --git a/apps/documentations/vad/kustomization.yaml b/apps/documentations/vad/kustomization.yaml
index 093516b..68a7147 100644
--- a/apps/documentations/vad/kustomization.yaml
+++ b/apps/documentations/vad/kustomization.yaml
@@ -15,3 +15,7 @@ patches:
target:
kind: HelmRelease
name: documentations-pdf-markings-amqp
+ - path: cde-api.yaml
+ target:
+ kind: HelmRelease
+ name: cde-api
diff --git a/apps/documentations/wb/cde-api-worker-copy.yaml b/apps/documentations/wb/cde-api-worker-copy.yaml
new file mode 100644
index 0000000..12b224f
--- /dev/null
+++ b/apps/documentations/wb/cde-api-worker-copy.yaml
@@ -0,0 +1,382 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2
+kind: HelmRelease
+metadata:
+ name: cde-api-worker-copy
+ namespace: documentations
+spec:
+ interval: 10m
+ chart:
+ spec:
+ chart: universal-chart
+ version: "0.1.7"
+ sourceRef:
+ kind: HelmRepository
+ name: yc-oci-charts
+ namespace: flux-system
+ interval: 10m
+ install:
+ remediation:
+ retries: 3
+ upgrade:
+ remediation:
+ retries: 3
+ values:
+ global:
+ env: _default
+ services:
+ worker-copy:
+ enabled: true
+ deployment:
+ enabled: true
+ name:
+ _default: worker-copy
+ replicaCount:
+ _default: 1
+ revisionHistoryLimit:
+ _default: 5
+ resources:
+ requests:
+ cpu:
+ _default: 100m
+ memory:
+ _default: 64Mi
+ image:
+ name:
+ _default: cr.yandex/crp3ccidau046kdj8g9q/cde-api-worker-copy:prod_c9bc246
+ pullPolicy:
+ _default: IfNotPresent
+ service:
+ enabled: false
+ imagePullSecrets:
+ enabled:
+ _default: true
+ name:
+ _default: dockerhub
+ envs:
+ - name: CDE_API_EAV_HOST
+ value:
+ _default: "http://eav-service.eav.svc.cluster.local:8000"
+ - name: CDE_API_APP_NAME
+ value:
+ _default: "worker-copy"
+ - name: CDE_API_SENTRY_DSN
+ value:
+ _default: ""
+ - name: CDE_API_SENTRY_ENVIRONMENT
+ value:
+ _default: ""
+ - name: CDE_API_LOG_LEVEL
+ value:
+ _default: "info"
+ - name: CDE_API_OBSERVABILITY_ENABLE
+ value:
+ _default: "true"
+ - name: CDE_API_OBSERVABILITY_HOST
+ value:
+ _default: "signoz-otel-collector-external.signoz.svc.cluster.local"
+ - name: CDE_API_OBSERVABILITY_PORT
+ value:
+ _default: "4317"
+ - name: CDE_API_S3_MAX_SINGLE_UPLOAD_SIZE
+ value:
+ _default: "5368709120"
+ - name: CDE_API_S3_MAX_PART_SIZE
+ value:
+ _default: "524288000"
+ - name: CDE_API_S3_UPLOAD_STALL_TIMEOUT
+ value:
+ _default: "10m"
+ - name: CDE_API_OBSERVABILITY_SERVICE_NAME
+ value:
+ _default: "worker-copy"
+ - name: CDE_API_SYSTEMLOG_BASE_URL
+ value:
+ _default: "http://api-service.system-log.svc.cluster.local:8000"
+ - name: CDE_API_SYSTEMLOG_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_DATABASE__SSLMODE
+ value:
+ _default: "disable"
+ - name: CDE_API_DATABASE__INSECURE_SKIP_TLS
+ value:
+ _default: "false"
+ - name: CDE_API_DATABASE_MAX_CONN_LIFETIME
+ value:
+ _default: "30m"
+ - name: CDE_API_DATABASE_MAX_CONN_IDLE_TIME
+ value:
+ _default: "10m"
+ - name: CDE_API_DATABASE_HEALTH_CHECK_PERIOD
+ value:
+ _default: "30s"
+ - name: CDE_API_DATABASE_POOL_SIZE
+ value:
+ _default: "3"
+ - name: CDE_API_REDIS__SSL
+ value:
+ _default: "false"
+ - name: CDE_API_REDIS__POOL_SIZE
+ value:
+ _default: "5"
+ - name: CDE_API_REDIS__MIN_IDLE_CONNS
+ value:
+ _default: "1"
+ - name: CDE_API_REDIS__DIAL_TIMEOUT_MS
+ value:
+ _default: "5000"
+ - name: CDE_API_REDIS__READ_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__WRITE_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__DEFAULT_TTL_MINUTES
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__PERMISSION_CACHE_ENABLED
+ value:
+ _default: "false"
+ - name: CDE_API_S3_USE_SSL
+ value:
+ _default: "true"
+ - name: CDE_API_S3_BUCKET_LOOKUP
+ value:
+ _default: "auto"
+ - name: CDE_API_S3_INSECURE_SKIP_TLS
+ value:
+ _default: "true"
+ - name: CDE_API_S3_CHECK_BUCKET
+ value:
+ _default: "false"
+ - name: CDE_API_S3_BUCKET_NAME
+ value:
+ _default: "documentations-prod"
+ - name: CDE_API_ZEEBE_USE_PLAINTEXT
+ value:
+ _default: "true"
+ - name: CDE_API_MAILER_BASE_URL
+ value:
+ _default: "http://mailer-service.mailer:8000"
+ - name: CDE_API_MAILER_FROM_EMAIL
+ value:
+ _default: "noreply@sarex.io"
+ - name: CDE_API_WORKFLOW_BASE_URL
+ value:
+ _default: "http://workflows-api-service.workflow.svc.cluster.local:8000"
+ - name: CDE_API_WORKFLOW_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_WORKFLOW_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_BIMAPI_URL
+ value:
+ _default: "http://backend-service.bim.svc.cluster.local:8000"
+ - name: CDE_API_BIMAPI_V2_URL
+ value:
+ _default: "http://backend-service.bim.svc.cluster.local:8000"
+ - name: CDE_API_BIMAPI_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_BIMAPI_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_BIMAPI_TIMEOUT_V2_MS
+ value:
+ _default: "300000"
+ - name: CDE_API_CONTAINER_REGISTRY
+ value:
+ _default: "cr.yandex/crp3ccidau046kdj8g9q"
+ - name: CDE_API_WORKFLOWS_IMAGES_VERSION
+ value:
+ _default: "master"
+ - name: CDE_API_DJANGO_HOST
+ value:
+ _default: "http://backend.django.svc.cluster.local:8000"
+ - name: CDE_API_ENVIRONMENT
+ value:
+ _default: "production"
+ - name: CDE_API_CONVERTED_PDF_TO_S3
+ value:
+ _default: "true"
+ - name: CDE_API_CONVERT_DXF_TO_GEOJSON
+ value:
+ _default: "true"
+ - name: CDE_API_CONVERT_DWG_TO_GEOJSON
+ value:
+ _default: "true"
+ - name: CDE_API_USE_BIMV1_FOR_BIMV2
+ value:
+ _default: "true"
+ - name: CDE_API_LAST_MASTER_BIM
+ value:
+ _default: "36311"
+ - name: CDE_API_LAST_SLAVE_1_BIM
+ value:
+ _default: "94015"
+ - name: CDE_API_LAST_SLAVE_2_BIM
+ value:
+ _default: "135771"
+ - name: CDE_API_USE_BIM_INSERTER
+ value:
+ _default: "true"
+ - name: CDE_API_USE_LEGACY_BIM_FLOW
+ value:
+ _default: "0"
+ - name: CDE_API_DOCUMENTATION_V2_URL
+ value:
+ _default: "http://documentations-api.documentations.svc.cluster.local:8080"
+ - name: CDE_API_INTERNAL_URL
+ value:
+ _default: "http://cde-api.documentations:8000"
+ - name: CDE_API_FLOWS_URL
+ value:
+ _default: "http://backend-service.flows.svc.cluster.local:8000"
+ - name: CDE_API_TRANSMITTALS_URL
+ value:
+ _default: "http://transmittal-service.transmittal.svc.cluster.local:80"
+ - name: CDE_API_WORKFLOWS_CONFIG_FILEPATH
+ value:
+ _default: "/etc/app/tasks_execution_config.json"
+ - name: CDE_API_WORKSPACE_BASE_URL
+ value:
+ _default: "http://workspaces-service.workspaces.svc.cluster.local:8000"
+ - name: CDE_API_WORKSPACE_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_WORKSPACE_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_RABBITMQ__MARKS_ROUTING_KEY
+ value:
+ _default: "pdf_markings_input"
+ - name: CDE_API_RABBITMQ__HASHER_ROUTING_KEY
+ value:
+ _default: "hash.compute.normal"
+ - name: CDE_API_RABBITMQ__HASHER_EXCHANGE
+ value:
+ _default: "hash.compute"
+ - name: CDE_API_ISSUES_SYNC_ENABLED
+ value:
+ _default: "false"
+ - name: CDE_API_ISSUES_BASE_URL
+ value:
+ _default: "http://issues-service.platform:8000"
+ - name: CDE_API_ISSUES_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_ISSUES_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_COPY_WORKER_JOBS
+ value:
+ _default: ""
+ - name: CDE_API_COPY_JOB_TIMEOUT_MINUTES
+ value:
+ _default: "30"
+ - name: CDE_API_COPY_STEP_PARALLELISM
+ value:
+ _default: "1"
+ - name: CDE_API_COPY_S3_PARALLELISM
+ value:
+ _default: "1"
+ - name: CDE_API_REDIS__HOST
+ value:
+ _default: "redis"
+ - name: CDE_API_REDIS__PORT
+ value:
+ _default: "6379"
+ - name: CDE_API_DATABASE__HOST
+ value:
+ _default: "sarex-vpsql-01.xc.wb.ru"
+ - name: CDE_API_DATABASE__PORT
+ value:
+ _default: "5432"
+ - name: CDE_API_DATABASE__NAME
+ value:
+ _default: "documentations_db"
+ - name: CDE_API_RABBITMQ__HOST
+ value:
+ _default: "rabbitmq.rabbitmq.svc.cluster.local"
+ - name: CDE_API_RABBITMQ__PORT
+ value:
+ _default: "5672"
+ - name: CDE_API_RABBITMQ__VHOST
+ value:
+ _default: "cde"
+ secretEnvs:
+ - name: CDE_API_DATABASE__USER
+ secretName:
+ _default: "postgres-secret"
+ secretKey:
+ _default: "username"
+ - name: CDE_API_DATABASE__PASSWORD
+ secretName:
+ _default: "postgres-secret"
+ secretKey:
+ _default: "password"
+ - name: CDE_API_S3_ENDPOINT
+ secretName:
+ _default: "yc-s3"
+ secretKey:
+ _default: "endpoint_url"
+ - name: CDE_API_S3_ACCESS_KEY
+ secretName:
+ _default: "yc-s3"
+ secretKey:
+ _default: "key_id"
+ - name: CDE_API_S3_SECRET_KEY
+ secretName:
+ _default: "yc-s3"
+ secretKey:
+ _default: "access_key"
+ - name: CDE_API_ZEEBE_GATEWAY_ADDRESS
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "gateway_address"
+ - name: CDE_API_ZEEBE_CLIENT_ID
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_id"
+ - name: CDE_API_ZEEBE_CLIENT_SECRET
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_secret"
+ - name: CDE_API_ZEEBE_AUTH_SERVER_URL
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "auth_server_url"
+ - name: CDE_API_RABBITMQ__USER
+ secretName:
+ _default: "hasher-rabbitmq-secret"
+ secretKey:
+ _default: "user"
+ - name: CDE_API_RABBITMQ__PASSWORD
+ secretName:
+ _default: "hasher-rabbitmq-secret"
+ secretKey:
+ _default: "password"
+ volumes:
+ _default:
+ - name: tasks-execution-config
+ mountPath:
+ _default: /etc/app/tasks_execution_config.json
+ subPath:
+ _default: tasks_execution_config.json
+ readOnly:
+ _default: true
+ configMap:
+ name:
+ _default: tasks-execution-config-documentation-v2
+ items:
+ - key: tasks-execution-config-documentation-v2.json
+ path:
+ _default: tasks_execution_config.json
+ defaultMode:
+ _default: "0644"
diff --git a/apps/documentations/wb/cde-api-worker-move.yaml b/apps/documentations/wb/cde-api-worker-move.yaml
new file mode 100644
index 0000000..6540257
--- /dev/null
+++ b/apps/documentations/wb/cde-api-worker-move.yaml
@@ -0,0 +1,364 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2
+kind: HelmRelease
+metadata:
+ name: cde-api-worker-move
+ namespace: documentations
+spec:
+ interval: 10m
+ chart:
+ spec:
+ chart: universal-chart
+ version: "0.1.7"
+ sourceRef:
+ kind: HelmRepository
+ name: yc-oci-charts
+ namespace: flux-system
+ interval: 10m
+ install:
+ remediation:
+ retries: 3
+ upgrade:
+ remediation:
+ retries: 3
+ values:
+ global:
+ env: _default
+ services:
+ worker-move:
+ enabled: true
+ deployment:
+ enabled: true
+ name:
+ _default: worker-move
+ replicaCount:
+ _default: 1
+ revisionHistoryLimit:
+ _default: 5
+ resources:
+ requests:
+ cpu:
+ _default: 100m
+ memory:
+ _default: 64Mi
+ image:
+ name:
+ _default: cr.yandex/crp3ccidau046kdj8g9q/cde-api-worker-move:prod_c9bc246
+ pullPolicy:
+ _default: IfNotPresent
+ service:
+ enabled: false
+ imagePullSecrets:
+ enabled:
+ _default: true
+ name:
+ _default: dockerhub
+ envs:
+ - name: CDE_API_EAV_HOST
+ value:
+ _default: "http://eav-service.eav.svc.cluster.local:8000"
+ - name: CDE_API_APP_NAME
+ value:
+ _default: "worker-move"
+ - name: CDE_API_SENTRY_DSN
+ value:
+ _default: ""
+ - name: CDE_API_SENTRY_ENVIRONMENT
+ value:
+ _default: ""
+ - name: CDE_API_LOG_LEVEL
+ value:
+ _default: "info"
+ - name: CDE_API_OBSERVABILITY_ENABLE
+ value:
+ _default: "true"
+ - name: CDE_API_OBSERVABILITY_HOST
+ value:
+ _default: "signoz-otel-collector-external.signoz.svc.cluster.local"
+ - name: CDE_API_OBSERVABILITY_PORT
+ value:
+ _default: "4317"
+ - name: CDE_API_S3_MAX_SINGLE_UPLOAD_SIZE
+ value:
+ _default: "5368709120"
+ - name: CDE_API_S3_MAX_PART_SIZE
+ value:
+ _default: "524288000"
+ - name: CDE_API_S3_UPLOAD_STALL_TIMEOUT
+ value:
+ _default: "10m"
+ - name: CDE_API_OBSERVABILITY_SERVICE_NAME
+ value:
+ _default: "worker-move"
+ - name: CDE_API_SYSTEMLOG_BASE_URL
+ value:
+ _default: "http://api-service.system-log.svc.cluster.local:8000"
+ - name: CDE_API_SYSTEMLOG_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_DATABASE__SSLMODE
+ value:
+ _default: "disable"
+ - name: CDE_API_DATABASE__INSECURE_SKIP_TLS
+ value:
+ _default: "false"
+ - name: CDE_API_DATABASE_MAX_CONN_LIFETIME
+ value:
+ _default: "30m"
+ - name: CDE_API_DATABASE_MAX_CONN_IDLE_TIME
+ value:
+ _default: "10m"
+ - name: CDE_API_DATABASE_HEALTH_CHECK_PERIOD
+ value:
+ _default: "30s"
+ - name: CDE_API_DATABASE_POOL_SIZE
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__SSL
+ value:
+ _default: "false"
+ - name: CDE_API_REDIS__POOL_SIZE
+ value:
+ _default: "5"
+ - name: CDE_API_REDIS__MIN_IDLE_CONNS
+ value:
+ _default: "1"
+ - name: CDE_API_REDIS__DIAL_TIMEOUT_MS
+ value:
+ _default: "5000"
+ - name: CDE_API_REDIS__READ_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__WRITE_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__DEFAULT_TTL_MINUTES
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__PERMISSION_CACHE_ENABLED
+ value:
+ _default: "false"
+ - name: CDE_API_S3_USE_SSL
+ value:
+ _default: "true"
+ - name: CDE_API_S3_BUCKET_LOOKUP
+ value:
+ _default: "auto"
+ - name: CDE_API_S3_INSECURE_SKIP_TLS
+ value:
+ _default: "true"
+ - name: CDE_API_S3_CHECK_BUCKET
+ value:
+ _default: "false"
+ - name: CDE_API_S3_BUCKET_NAME
+ value:
+ _default: "documentations-prod"
+ - name: CDE_API_ZEEBE_USE_PLAINTEXT
+ value:
+ _default: "true"
+ - name: CDE_API_MAILER_BASE_URL
+ value:
+ _default: "http://mailer-service.mailer:8000"
+ - name: CDE_API_MAILER_FROM_EMAIL
+ value:
+ _default: "noreply@sarex.io"
+ - name: CDE_API_WORKFLOW_BASE_URL
+ value:
+ _default: "http://workflows-api-service.workflow.svc.cluster.local:8000"
+ - name: CDE_API_WORKFLOW_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_WORKFLOW_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_BIMAPI_URL
+ value:
+ _default: "http://backend-service.bim.svc.cluster.local:8000"
+ - name: CDE_API_BIMAPI_V2_URL
+ value:
+ _default: "http://backend-service.bim.svc.cluster.local:8000"
+ - name: CDE_API_BIMAPI_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_BIMAPI_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_BIMAPI_TIMEOUT_V2_MS
+ value:
+ _default: "300000"
+ - name: CDE_API_CONTAINER_REGISTRY
+ value:
+ _default: "cr.yandex/crp3ccidau046kdj8g9q"
+ - name: CDE_API_WORKFLOWS_IMAGES_VERSION
+ value:
+ _default: "master"
+ - name: CDE_API_DJANGO_HOST
+ value:
+ _default: "http://backend.django.svc.cluster.local:8000"
+ - name: CDE_API_ENVIRONMENT
+ value:
+ _default: "production"
+ - name: CDE_API_CONVERTED_PDF_TO_S3
+ value:
+ _default: "true"
+ - name: CDE_API_CONVERT_DXF_TO_GEOJSON
+ value:
+ _default: "true"
+ - name: CDE_API_CONVERT_DWG_TO_GEOJSON
+ value:
+ _default: "true"
+ - name: CDE_API_USE_BIMV1_FOR_BIMV2
+ value:
+ _default: "true"
+ - name: CDE_API_LAST_MASTER_BIM
+ value:
+ _default: "36311"
+ - name: CDE_API_LAST_SLAVE_1_BIM
+ value:
+ _default: "94015"
+ - name: CDE_API_LAST_SLAVE_2_BIM
+ value:
+ _default: "135771"
+ - name: CDE_API_USE_BIM_INSERTER
+ value:
+ _default: "true"
+ - name: CDE_API_USE_LEGACY_BIM_FLOW
+ value:
+ _default: "0"
+ - name: CDE_API_DOCUMENTATION_V2_URL
+ value:
+ _default: "http://documentations-api.documentations.svc.cluster.local:8080"
+ - name: CDE_API_INTERNAL_URL
+ value:
+ _default: "http://cde-api.documentations:8000"
+ - name: CDE_API_FLOWS_URL
+ value:
+ _default: "http://backend-service.flows.svc.cluster.local:8000"
+ - name: CDE_API_TRANSMITTALS_URL
+ value:
+ _default: "http://transmittal-service.transmittal.svc.cluster.local:80"
+ - name: CDE_API_WORKFLOWS_CONFIG_FILEPATH
+ value:
+ _default: "/etc/app/tasks_execution_config.json"
+ - name: CDE_API_WORKSPACE_BASE_URL
+ value:
+ _default: "http://workspaces-service.workspaces.svc.cluster.local:8000"
+ - name: CDE_API_WORKSPACE_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_WORKSPACE_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_RABBITMQ__MARKS_ROUTING_KEY
+ value:
+ _default: "pdf_markings_input"
+ - name: CDE_API_RABBITMQ__HASHER_ROUTING_KEY
+ value:
+ _default: "hash.compute.normal"
+ - name: CDE_API_RABBITMQ__HASHER_EXCHANGE
+ value:
+ _default: "hash.compute"
+ - name: CDE_API_MOVE_WORKER_JOBS
+ value:
+ _default: ""
+ - name: CDE_API_MOVE_JOB_TIMEOUT_MINUTES
+ value:
+ _default: "30"
+ - name: CDE_API_REDIS__HOST
+ value:
+ _default: "redis"
+ - name: CDE_API_REDIS__PORT
+ value:
+ _default: "6379"
+ - name: CDE_API_DATABASE__HOST
+ value:
+ _default: "sarex-vpsql-01.xc.wb.ru"
+ - name: CDE_API_DATABASE__PORT
+ value:
+ _default: "5432"
+ - name: CDE_API_DATABASE__NAME
+ value:
+ _default: "documentations_db"
+ - name: CDE_API_RABBITMQ__HOST
+ value:
+ _default: "rabbitmq.rabbitmq.svc.cluster.local"
+ - name: CDE_API_RABBITMQ__PORT
+ value:
+ _default: "5672"
+ - name: CDE_API_RABBITMQ__VHOST
+ value:
+ _default: "cde"
+ secretEnvs:
+ - name: CDE_API_DATABASE__USER
+ secretName:
+ _default: "postgres-secret"
+ secretKey:
+ _default: "username"
+ - name: CDE_API_DATABASE__PASSWORD
+ secretName:
+ _default: "postgres-secret"
+ secretKey:
+ _default: "password"
+ - name: CDE_API_S3_ENDPOINT
+ secretName:
+ _default: "yc-s3"
+ secretKey:
+ _default: "endpoint_url"
+ - name: CDE_API_S3_ACCESS_KEY
+ secretName:
+ _default: "yc-s3"
+ secretKey:
+ _default: "key_id"
+ - name: CDE_API_S3_SECRET_KEY
+ secretName:
+ _default: "yc-s3"
+ secretKey:
+ _default: "access_key"
+ - name: CDE_API_ZEEBE_GATEWAY_ADDRESS
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "gateway_address"
+ - name: CDE_API_ZEEBE_CLIENT_ID
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_id"
+ - name: CDE_API_ZEEBE_CLIENT_SECRET
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_secret"
+ - name: CDE_API_ZEEBE_AUTH_SERVER_URL
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "auth_server_url"
+ - name: CDE_API_RABBITMQ__USER
+ secretName:
+ _default: "hasher-rabbitmq-secret"
+ secretKey:
+ _default: "user"
+ - name: CDE_API_RABBITMQ__PASSWORD
+ secretName:
+ _default: "hasher-rabbitmq-secret"
+ secretKey:
+ _default: "password"
+ volumes:
+ _default:
+ - name: tasks-execution-config
+ mountPath:
+ _default: /etc/app/tasks_execution_config.json
+ subPath:
+ _default: tasks_execution_config.json
+ readOnly:
+ _default: true
+ configMap:
+ name:
+ _default: tasks-execution-config-documentation-v2
+ items:
+ - key: tasks-execution-config-documentation-v2.json
+ path:
+ _default: tasks_execution_config.json
+ defaultMode:
+ _default: "0644"
diff --git a/apps/documentations/wb/cde-api-worker-s32d-create-upload.yaml b/apps/documentations/wb/cde-api-worker-s32d-create-upload.yaml
new file mode 100644
index 0000000..10b4484
--- /dev/null
+++ b/apps/documentations/wb/cde-api-worker-s32d-create-upload.yaml
@@ -0,0 +1,258 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2
+kind: HelmRelease
+metadata:
+ name: cde-api-worker-s32d-create-upload
+ namespace: documentations
+spec:
+ interval: 10m
+ chart:
+ spec:
+ chart: universal-chart
+ version: "0.1.7"
+ sourceRef:
+ kind: HelmRepository
+ name: yc-oci-charts
+ namespace: flux-system
+ interval: 10m
+ install:
+ remediation:
+ retries: 3
+ upgrade:
+ remediation:
+ retries: 3
+ values:
+ global:
+ env: _default
+ services:
+ worker-s32d-create-upload:
+ enabled: true
+ deployment:
+ enabled: true
+ name:
+ _default: worker-s32d-create-upload
+ replicaCount:
+ _default: 1
+ revisionHistoryLimit:
+ _default: 5
+ resources:
+ requests:
+ cpu:
+ _default: 200m
+ memory:
+ _default: 256Mi
+ image:
+ name:
+ _default: cr.yandex/crp3ccidau046kdj8g9q/cde-api-worker-s32d-create-upload:prod_c9bc246
+ pullPolicy:
+ _default: IfNotPresent
+ service:
+ enabled: false
+ imagePullSecrets:
+ enabled:
+ _default: true
+ name:
+ _default: dockerhub
+ envs:
+ - name: CDE_API_EAV_HOST
+ value:
+ _default: "http://eav-service.eav.svc.cluster.local:8000"
+ - name: CDE_API_APP_NAME
+ value:
+ _default: "worker-s32d-create-upload"
+ - name: CDE_API_SENTRY_DSN
+ value:
+ _default: ""
+ - name: CDE_API_SENTRY_ENVIRONMENT
+ value:
+ _default: ""
+ - name: CDE_API_LOG_LEVEL
+ value:
+ _default: "info"
+ - name: CDE_API_OBSERVABILITY_ENABLE
+ value:
+ _default: "true"
+ - name: CDE_API_OBSERVABILITY_HOST
+ value:
+ _default: "signoz-otel-collector-external.signoz.svc.cluster.local"
+ - name: CDE_API_OBSERVABILITY_PORT
+ value:
+ _default: "4317"
+ - name: CDE_API_S3_MAX_SINGLE_UPLOAD_SIZE
+ value:
+ _default: "5368709120"
+ - name: CDE_API_S3_MAX_PART_SIZE
+ value:
+ _default: "524288000"
+ - name: CDE_API_S3_UPLOAD_STALL_TIMEOUT
+ value:
+ _default: "10m"
+ - name: CDE_API_OBSERVABILITY_SERVICE_NAME
+ value:
+ _default: "worker-s32d-create-upload"
+ - name: CDE_API_DATABASE__SSLMODE
+ value:
+ _default: "disable"
+ - name: CDE_API_DATABASE__INSECURE_SKIP_TLS
+ value:
+ _default: "false"
+ - name: CDE_API_DATABASE_MAX_CONN_LIFETIME
+ value:
+ _default: "30m"
+ - name: CDE_API_DATABASE_MAX_CONN_IDLE_TIME
+ value:
+ _default: "10m"
+ - name: CDE_API_DATABASE_HEALTH_CHECK_PERIOD
+ value:
+ _default: "30s"
+ - name: CDE_API_DATABASE_POOL_SIZE
+ value:
+ _default: "3"
+ - name: CDE_API_REDIS__SSL
+ value:
+ _default: "false"
+ - name: CDE_API_REDIS__POOL_SIZE
+ value:
+ _default: "5"
+ - name: CDE_API_REDIS__MIN_IDLE_CONNS
+ value:
+ _default: "1"
+ - name: CDE_API_REDIS__DIAL_TIMEOUT_MS
+ value:
+ _default: "5000"
+ - name: CDE_API_REDIS__READ_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__WRITE_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__DEFAULT_TTL_MINUTES
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__PERMISSION_CACHE_ENABLED
+ value:
+ _default: "false"
+ - name: CDE_API_S3_USE_SSL
+ value:
+ _default: "true"
+ - name: CDE_API_S3_BUCKET_LOOKUP
+ value:
+ _default: "auto"
+ - name: CDE_API_S3_INSECURE_SKIP_TLS
+ value:
+ _default: "true"
+ - name: CDE_API_S3_CHECK_BUCKET
+ value:
+ _default: "false"
+ - name: CDE_API_S3_BUCKET_NAME
+ value:
+ _default: "documentations-prod"
+ - name: CDE_API_ZEEBE_USE_PLAINTEXT
+ value:
+ _default: "true"
+ - name: CDE_API_S32D_READERAT_BLOCK_SIZE_MB
+ value:
+ _default: "8"
+ - name: CDE_API_S32D_READERAT_CACHE_BLOCKS
+ value:
+ _default: "8"
+ - name: CDE_API_S32D_WORKER_CREATE_UPLOAD_TIMEOUT_MIN
+ value:
+ _default: "240"
+ - name: CDE_API_S32D_WORKER_CREATE_UPLOAD_MAX_JOBS
+ value:
+ _default: "2"
+ - name: CDE_API_MAILER_BASE_URL
+ value:
+ _default: "http://mailer-service.mailer:8000"
+ - name: CDE_API_MAILER_FROM_EMAIL
+ value:
+ _default: "noreply@sarex.io"
+ - name: CDE_API_FLOWS_URL
+ value:
+ _default: "http://backend-service.flows.svc.cluster.local:8000"
+ - name: CDE_API_TRANSMITTALS_URL
+ value:
+ _default: "http://transmittal-service.transmittal.svc.cluster.local:80"
+ - name: CDE_API_WORKFLOWS_CONFIG_FILEPATH
+ value:
+ _default: "/etc/app/tasks_execution_config.json"
+ - name: CDE_API_REDIS__HOST
+ value:
+ _default: "redis"
+ - name: CDE_API_REDIS__PORT
+ value:
+ _default: "6379"
+ - name: CDE_API_DATABASE__HOST
+ value:
+ _default: "sarex-vpsql-01.xc.wb.ru"
+ - name: CDE_API_DATABASE__PORT
+ value:
+ _default: "5432"
+ - name: CDE_API_DATABASE__NAME
+ value:
+ _default: "documentations_db"
+ secretEnvs:
+ - name: CDE_API_DATABASE__USER
+ secretName:
+ _default: "postgres-secret"
+ secretKey:
+ _default: "username"
+ - name: CDE_API_DATABASE__PASSWORD
+ secretName:
+ _default: "postgres-secret"
+ secretKey:
+ _default: "password"
+ - name: CDE_API_S3_ENDPOINT
+ secretName:
+ _default: "yc-s3"
+ secretKey:
+ _default: "endpoint_url"
+ - name: CDE_API_S3_ACCESS_KEY
+ secretName:
+ _default: "yc-s3"
+ secretKey:
+ _default: "key_id"
+ - name: CDE_API_S3_SECRET_KEY
+ secretName:
+ _default: "yc-s3"
+ secretKey:
+ _default: "access_key"
+ - name: CDE_API_ZEEBE_GATEWAY_ADDRESS
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "gateway_address"
+ - name: CDE_API_ZEEBE_CLIENT_ID
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_id"
+ - name: CDE_API_ZEEBE_CLIENT_SECRET
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_secret"
+ - name: CDE_API_ZEEBE_AUTH_SERVER_URL
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "auth_server_url"
+ volumes:
+ _default:
+ - name: tasks-execution-config
+ mountPath:
+ _default: /etc/app/tasks_execution_config.json
+ subPath:
+ _default: tasks_execution_config.json
+ readOnly:
+ _default: true
+ configMap:
+ name:
+ _default: tasks-execution-config-documentation-v2
+ items:
+ - key: tasks-execution-config-documentation-v2.json
+ path:
+ _default: tasks_execution_config.json
+ defaultMode:
+ _default: "0644"
diff --git a/apps/documentations/wb/cde-api-worker-s32d-handle-error.yaml b/apps/documentations/wb/cde-api-worker-s32d-handle-error.yaml
new file mode 100644
index 0000000..122005d
--- /dev/null
+++ b/apps/documentations/wb/cde-api-worker-s32d-handle-error.yaml
@@ -0,0 +1,252 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2
+kind: HelmRelease
+metadata:
+ name: cde-api-worker-s32d-handle-error
+ namespace: documentations
+spec:
+ interval: 10m
+ chart:
+ spec:
+ chart: universal-chart
+ version: "0.1.7"
+ sourceRef:
+ kind: HelmRepository
+ name: yc-oci-charts
+ namespace: flux-system
+ interval: 10m
+ install:
+ remediation:
+ retries: 3
+ upgrade:
+ remediation:
+ retries: 3
+ values:
+ global:
+ env: _default
+ services:
+ worker-s32d-handle-error:
+ enabled: true
+ deployment:
+ enabled: true
+ name:
+ _default: worker-s32d-handle-error
+ replicaCount:
+ _default: 1
+ revisionHistoryLimit:
+ _default: 5
+ resources:
+ requests:
+ cpu:
+ _default: 50m
+ memory:
+ _default: 64Mi
+ image:
+ name:
+ _default: cr.yandex/crp3ccidau046kdj8g9q/cde-api-worker-s32d-handle-error:prod_c9bc246
+ pullPolicy:
+ _default: IfNotPresent
+ service:
+ enabled: false
+ imagePullSecrets:
+ enabled:
+ _default: true
+ name:
+ _default: dockerhub
+ envs:
+ - name: CDE_API_EAV_HOST
+ value:
+ _default: "http://eav-service.eav.svc.cluster.local:8000"
+ - name: CDE_API_APP_NAME
+ value:
+ _default: "worker-s32d-handle-error"
+ - name: CDE_API_SENTRY_DSN
+ value:
+ _default: ""
+ - name: CDE_API_SENTRY_ENVIRONMENT
+ value:
+ _default: ""
+ - name: CDE_API_LOG_LEVEL
+ value:
+ _default: "info"
+ - name: CDE_API_OBSERVABILITY_ENABLE
+ value:
+ _default: "true"
+ - name: CDE_API_OBSERVABILITY_HOST
+ value:
+ _default: "signoz-otel-collector-external.signoz.svc.cluster.local"
+ - name: CDE_API_OBSERVABILITY_PORT
+ value:
+ _default: "4317"
+ - name: CDE_API_S3_MAX_SINGLE_UPLOAD_SIZE
+ value:
+ _default: "5368709120"
+ - name: CDE_API_S3_MAX_PART_SIZE
+ value:
+ _default: "524288000"
+ - name: CDE_API_S3_UPLOAD_STALL_TIMEOUT
+ value:
+ _default: "10m"
+ - name: CDE_API_OBSERVABILITY_SERVICE_NAME
+ value:
+ _default: "worker-s32d-handle-error"
+ - name: CDE_API_DATABASE__SSLMODE
+ value:
+ _default: "disable"
+ - name: CDE_API_DATABASE__INSECURE_SKIP_TLS
+ value:
+ _default: "false"
+ - name: CDE_API_DATABASE_MAX_CONN_LIFETIME
+ value:
+ _default: "30m"
+ - name: CDE_API_DATABASE_MAX_CONN_IDLE_TIME
+ value:
+ _default: "10m"
+ - name: CDE_API_DATABASE_HEALTH_CHECK_PERIOD
+ value:
+ _default: "30s"
+ - name: CDE_API_DATABASE_POOL_SIZE
+ value:
+ _default: "2"
+ - name: CDE_API_REDIS__SSL
+ value:
+ _default: "false"
+ - name: CDE_API_REDIS__POOL_SIZE
+ value:
+ _default: "3"
+ - name: CDE_API_REDIS__MIN_IDLE_CONNS
+ value:
+ _default: "1"
+ - name: CDE_API_REDIS__DIAL_TIMEOUT_MS
+ value:
+ _default: "5000"
+ - name: CDE_API_REDIS__READ_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__WRITE_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__DEFAULT_TTL_MINUTES
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__PERMISSION_CACHE_ENABLED
+ value:
+ _default: "false"
+ - name: CDE_API_S3_USE_SSL
+ value:
+ _default: "true"
+ - name: CDE_API_S3_BUCKET_LOOKUP
+ value:
+ _default: "auto"
+ - name: CDE_API_S3_INSECURE_SKIP_TLS
+ value:
+ _default: "true"
+ - name: CDE_API_S3_CHECK_BUCKET
+ value:
+ _default: "false"
+ - name: CDE_API_S3_BUCKET_NAME
+ value:
+ _default: "documentations-prod"
+ - name: CDE_API_ZEEBE_USE_PLAINTEXT
+ value:
+ _default: "true"
+ - name: CDE_API_S32D_WORKER_HANDLE_ERROR_TIMEOUT_MIN
+ value:
+ _default: "10"
+ - name: CDE_API_S32D_WORKER_HANDLE_ERROR_MAX_JOBS
+ value:
+ _default: "4"
+ - name: CDE_API_MAILER_BASE_URL
+ value:
+ _default: "http://mailer-service.mailer:8000"
+ - name: CDE_API_MAILER_FROM_EMAIL
+ value:
+ _default: "noreply@sarex.io"
+ - name: CDE_API_FLOWS_URL
+ value:
+ _default: "http://backend-service.flows.svc.cluster.local:8000"
+ - name: CDE_API_TRANSMITTALS_URL
+ value:
+ _default: "http://transmittal-service.transmittal.svc.cluster.local:80"
+ - name: CDE_API_WORKFLOWS_CONFIG_FILEPATH
+ value:
+ _default: "/etc/app/tasks_execution_config.json"
+ - name: CDE_API_REDIS__HOST
+ value:
+ _default: "redis"
+ - name: CDE_API_REDIS__PORT
+ value:
+ _default: "6379"
+ - name: CDE_API_DATABASE__HOST
+ value:
+ _default: "sarex-vpsql-01.xc.wb.ru"
+ - name: CDE_API_DATABASE__PORT
+ value:
+ _default: "5432"
+ - name: CDE_API_DATABASE__NAME
+ value:
+ _default: "documentations_db"
+ secretEnvs:
+ - name: CDE_API_DATABASE__USER
+ secretName:
+ _default: "postgres-secret"
+ secretKey:
+ _default: "username"
+ - name: CDE_API_DATABASE__PASSWORD
+ secretName:
+ _default: "postgres-secret"
+ secretKey:
+ _default: "password"
+ - name: CDE_API_S3_ENDPOINT
+ secretName:
+ _default: "yc-s3"
+ secretKey:
+ _default: "endpoint_url"
+ - name: CDE_API_S3_ACCESS_KEY
+ secretName:
+ _default: "yc-s3"
+ secretKey:
+ _default: "key_id"
+ - name: CDE_API_S3_SECRET_KEY
+ secretName:
+ _default: "yc-s3"
+ secretKey:
+ _default: "access_key"
+ - name: CDE_API_ZEEBE_GATEWAY_ADDRESS
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "gateway_address"
+ - name: CDE_API_ZEEBE_CLIENT_ID
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_id"
+ - name: CDE_API_ZEEBE_CLIENT_SECRET
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_secret"
+ - name: CDE_API_ZEEBE_AUTH_SERVER_URL
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "auth_server_url"
+ volumes:
+ _default:
+ - name: tasks-execution-config
+ mountPath:
+ _default: /etc/app/tasks_execution_config.json
+ subPath:
+ _default: tasks_execution_config.json
+ readOnly:
+ _default: true
+ configMap:
+ name:
+ _default: tasks-execution-config-documentation-v2
+ items:
+ - key: tasks-execution-config-documentation-v2.json
+ path:
+ _default: tasks_execution_config.json
+ defaultMode:
+ _default: "0644"
diff --git a/apps/documentations/wb/cde-api-worker-s32d-process-workflows.yaml b/apps/documentations/wb/cde-api-worker-s32d-process-workflows.yaml
new file mode 100644
index 0000000..e66f216
--- /dev/null
+++ b/apps/documentations/wb/cde-api-worker-s32d-process-workflows.yaml
@@ -0,0 +1,321 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2
+kind: HelmRelease
+metadata:
+ name: cde-api-worker-s32d-process-workflows
+ namespace: documentations
+spec:
+ interval: 10m
+ chart:
+ spec:
+ chart: universal-chart
+ version: "0.1.7"
+ sourceRef:
+ kind: HelmRepository
+ name: yc-oci-charts
+ namespace: flux-system
+ interval: 10m
+ install:
+ remediation:
+ retries: 3
+ upgrade:
+ remediation:
+ retries: 3
+ values:
+ global:
+ env: _default
+ services:
+ worker-s32d-process-workflows:
+ enabled: true
+ deployment:
+ enabled: true
+ name:
+ _default: worker-s32d-process-workflows
+ replicaCount:
+ _default: 1
+ revisionHistoryLimit:
+ _default: 5
+ resources:
+ requests:
+ cpu:
+ _default: 200m
+ memory:
+ _default: 256Mi
+ image:
+ name:
+ _default: cr.yandex/crp3ccidau046kdj8g9q/cde-api-worker-s32d-process-workflows:prod_c9bc246
+ pullPolicy:
+ _default: IfNotPresent
+ service:
+ enabled: false
+ imagePullSecrets:
+ enabled:
+ _default: true
+ name:
+ _default: dockerhub
+ envs:
+ - name: CDE_API_EAV_HOST
+ value:
+ _default: "http://eav-service.eav.svc.cluster.local:8000"
+ - name: CDE_API_APP_NAME
+ value:
+ _default: "worker-s32d-process-workflows"
+ - name: CDE_API_SENTRY_DSN
+ value:
+ _default: ""
+ - name: CDE_API_SENTRY_ENVIRONMENT
+ value:
+ _default: ""
+ - name: CDE_API_LOG_LEVEL
+ value:
+ _default: "info"
+ - name: CDE_API_OBSERVABILITY_ENABLE
+ value:
+ _default: "true"
+ - name: CDE_API_OBSERVABILITY_HOST
+ value:
+ _default: "signoz-otel-collector-external.signoz.svc.cluster.local"
+ - name: CDE_API_OBSERVABILITY_PORT
+ value:
+ _default: "4317"
+ - name: CDE_API_S3_MAX_SINGLE_UPLOAD_SIZE
+ value:
+ _default: "5368709120"
+ - name: CDE_API_S3_MAX_PART_SIZE
+ value:
+ _default: "524288000"
+ - name: CDE_API_S3_UPLOAD_STALL_TIMEOUT
+ value:
+ _default: "10m"
+ - name: CDE_API_OBSERVABILITY_SERVICE_NAME
+ value:
+ _default: "worker-s32d-process-workflows"
+ - name: CDE_API_DATABASE__SSLMODE
+ value:
+ _default: "disable"
+ - name: CDE_API_DATABASE__INSECURE_SKIP_TLS
+ value:
+ _default: "false"
+ - name: CDE_API_DATABASE_MAX_CONN_LIFETIME
+ value:
+ _default: "30m"
+ - name: CDE_API_DATABASE_MAX_CONN_IDLE_TIME
+ value:
+ _default: "10m"
+ - name: CDE_API_DATABASE_HEALTH_CHECK_PERIOD
+ value:
+ _default: "30s"
+ - name: CDE_API_DATABASE_POOL_SIZE
+ value:
+ _default: "3"
+ - name: CDE_API_REDIS__SSL
+ value:
+ _default: "false"
+ - name: CDE_API_REDIS__POOL_SIZE
+ value:
+ _default: "5"
+ - name: CDE_API_REDIS__MIN_IDLE_CONNS
+ value:
+ _default: "1"
+ - name: CDE_API_REDIS__DIAL_TIMEOUT_MS
+ value:
+ _default: "5000"
+ - name: CDE_API_REDIS__READ_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__WRITE_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__DEFAULT_TTL_MINUTES
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__PERMISSION_CACHE_ENABLED
+ value:
+ _default: "false"
+ - name: CDE_API_S3_USE_SSL
+ value:
+ _default: "true"
+ - name: CDE_API_S3_BUCKET_LOOKUP
+ value:
+ _default: "auto"
+ - name: CDE_API_S3_INSECURE_SKIP_TLS
+ value:
+ _default: "true"
+ - name: CDE_API_S3_CHECK_BUCKET
+ value:
+ _default: "false"
+ - name: CDE_API_S3_BUCKET_NAME
+ value:
+ _default: "documentations-prod"
+ - name: CDE_API_ZEEBE_USE_PLAINTEXT
+ value:
+ _default: "true"
+ - name: CDE_API_S32D_WORKER_PROCESS_WORKFLOWS_TIMEOUT_MIN
+ value:
+ _default: "480"
+ - name: CDE_API_S32D_WORKER_PROCESS_WORKFLOWS_MAX_JOBS
+ value:
+ _default: "2"
+ - name: CDE_API_MAILER_BASE_URL
+ value:
+ _default: "http://mailer-service.mailer:8000"
+ - name: CDE_API_MAILER_FROM_EMAIL
+ value:
+ _default: "noreply@sarex.io"
+ - name: CDE_API_WORKFLOW_BASE_URL
+ value:
+ _default: "http://workflows-api-service.workflow.svc.cluster.local:8000"
+ - name: CDE_API_WORKFLOW_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_WORKFLOW_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_BIMAPI_URL
+ value:
+ _default: "http://backend-service.bim.svc.cluster.local:8000"
+ - name: CDE_API_BIMAPI_V2_URL
+ value:
+ _default: "http://backend-service.bim.svc.cluster.local:8000"
+ - name: CDE_API_BIMAPI_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_BIMAPI_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_BIMAPI_TIMEOUT_V2_MS
+ value:
+ _default: "300000"
+ - name: CDE_API_CONTAINER_REGISTRY
+ value:
+ _default: "cr.yandex/crp3ccidau046kdj8g9q"
+ - name: CDE_API_WORKFLOWS_IMAGES_VERSION
+ value:
+ _default: "master"
+ - name: CDE_API_DJANGO_HOST
+ value:
+ _default: "http://backend.django.svc.cluster.local:8000"
+ - name: CDE_API_ENVIRONMENT
+ value:
+ _default: "production"
+ - name: CDE_API_CONVERTED_PDF_TO_S3
+ value:
+ _default: "true"
+ - name: CDE_API_CONVERT_DXF_TO_GEOJSON
+ value:
+ _default: "true"
+ - name: CDE_API_CONVERT_DWG_TO_GEOJSON
+ value:
+ _default: "true"
+ - name: CDE_API_USE_BIMV1_FOR_BIMV2
+ value:
+ _default: "true"
+ - name: CDE_API_LAST_MASTER_BIM
+ value:
+ _default: "36311"
+ - name: CDE_API_LAST_SLAVE_1_BIM
+ value:
+ _default: "94015"
+ - name: CDE_API_LAST_SLAVE_2_BIM
+ value:
+ _default: "135771"
+ - name: CDE_API_USE_BIM_INSERTER
+ value:
+ _default: "true"
+ - name: CDE_API_USE_LEGACY_BIM_FLOW
+ value:
+ _default: "0"
+ - name: CDE_API_DOCUMENTATION_V2_URL
+ value:
+ _default: "http://documentations-api.documentations.svc.cluster.local:8080"
+ - name: CDE_API_INTERNAL_URL
+ value:
+ _default: "http://cde-api.documentations:8000"
+ - name: CDE_API_FLOWS_URL
+ value:
+ _default: "http://backend-service.flows.svc.cluster.local:8000"
+ - name: CDE_API_TRANSMITTALS_URL
+ value:
+ _default: "http://transmittal-service.transmittal.svc.cluster.local:80"
+ - name: CDE_API_WORKFLOWS_CONFIG_FILEPATH
+ value:
+ _default: "/etc/app/tasks_execution_config.json"
+ - name: CDE_API_REDIS__HOST
+ value:
+ _default: "redis"
+ - name: CDE_API_REDIS__PORT
+ value:
+ _default: "6379"
+ - name: CDE_API_DATABASE__HOST
+ value:
+ _default: "sarex-vpsql-01.xc.wb.ru"
+ - name: CDE_API_DATABASE__PORT
+ value:
+ _default: "5432"
+ - name: CDE_API_DATABASE__NAME
+ value:
+ _default: "documentations_db"
+ secretEnvs:
+ - name: CDE_API_DATABASE__USER
+ secretName:
+ _default: "postgres-secret"
+ secretKey:
+ _default: "username"
+ - name: CDE_API_DATABASE__PASSWORD
+ secretName:
+ _default: "postgres-secret"
+ secretKey:
+ _default: "password"
+ - name: CDE_API_S3_ENDPOINT
+ secretName:
+ _default: "yc-s3"
+ secretKey:
+ _default: "endpoint_url"
+ - name: CDE_API_S3_ACCESS_KEY
+ secretName:
+ _default: "yc-s3"
+ secretKey:
+ _default: "key_id"
+ - name: CDE_API_S3_SECRET_KEY
+ secretName:
+ _default: "yc-s3"
+ secretKey:
+ _default: "access_key"
+ - name: CDE_API_ZEEBE_GATEWAY_ADDRESS
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "gateway_address"
+ - name: CDE_API_ZEEBE_CLIENT_ID
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_id"
+ - name: CDE_API_ZEEBE_CLIENT_SECRET
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_secret"
+ - name: CDE_API_ZEEBE_AUTH_SERVER_URL
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "auth_server_url"
+ volumes:
+ _default:
+ - name: tasks-execution-config
+ mountPath:
+ _default: /etc/app/tasks_execution_config.json
+ subPath:
+ _default: tasks_execution_config.json
+ readOnly:
+ _default: true
+ configMap:
+ name:
+ _default: tasks-execution-config-documentation-v2
+ items:
+ - key: tasks-execution-config-documentation-v2.json
+ path:
+ _default: tasks_execution_config.json
+ defaultMode:
+ _default: "0644"
diff --git a/apps/documentations/wb/cde-api-worker-s32d-publish-documents.yaml b/apps/documentations/wb/cde-api-worker-s32d-publish-documents.yaml
new file mode 100644
index 0000000..b8e37b6
--- /dev/null
+++ b/apps/documentations/wb/cde-api-worker-s32d-publish-documents.yaml
@@ -0,0 +1,267 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2
+kind: HelmRelease
+metadata:
+ name: cde-api-worker-s32d-publish-documents
+ namespace: documentations
+spec:
+ interval: 10m
+ chart:
+ spec:
+ chart: universal-chart
+ version: "0.1.7"
+ sourceRef:
+ kind: HelmRepository
+ name: yc-oci-charts
+ namespace: flux-system
+ interval: 10m
+ install:
+ remediation:
+ retries: 3
+ upgrade:
+ remediation:
+ retries: 3
+ values:
+ global:
+ env: _default
+ services:
+ worker-s32d-publish-documents:
+ enabled: true
+ deployment:
+ enabled: true
+ name:
+ _default: worker-s32d-publish-documents
+ replicaCount:
+ _default: 1
+ revisionHistoryLimit:
+ _default: 5
+ resources:
+ requests:
+ cpu:
+ _default: 100m
+ memory:
+ _default: 64Mi
+ image:
+ name:
+ _default: cr.yandex/crp3ccidau046kdj8g9q/cde-api-worker-s32d-publish-documents:prod_c9bc246
+ pullPolicy:
+ _default: IfNotPresent
+ service:
+ enabled: false
+ imagePullSecrets:
+ enabled:
+ _default: true
+ name:
+ _default: dockerhub
+ envs:
+ - name: CDE_API_EAV_HOST
+ value:
+ _default: "http://eav-service.eav.svc.cluster.local:8000"
+ - name: CDE_API_APP_NAME
+ value:
+ _default: "worker-s32d-publish-documents"
+ - name: CDE_API_SENTRY_DSN
+ value:
+ _default: ""
+ - name: CDE_API_SENTRY_ENVIRONMENT
+ value:
+ _default: ""
+ - name: CDE_API_LOG_LEVEL
+ value:
+ _default: "info"
+ - name: CDE_API_OBSERVABILITY_ENABLE
+ value:
+ _default: "true"
+ - name: CDE_API_OBSERVABILITY_HOST
+ value:
+ _default: "signoz-otel-collector-external.signoz.svc.cluster.local"
+ - name: CDE_API_OBSERVABILITY_PORT
+ value:
+ _default: "4317"
+ - name: CDE_API_S3_MAX_SINGLE_UPLOAD_SIZE
+ value:
+ _default: "5368709120"
+ - name: CDE_API_S3_MAX_PART_SIZE
+ value:
+ _default: "524288000"
+ - name: CDE_API_S3_UPLOAD_STALL_TIMEOUT
+ value:
+ _default: "10m"
+ - name: CDE_API_OBSERVABILITY_SERVICE_NAME
+ value:
+ _default: "worker-s32d-publish-documents"
+ - name: CDE_API_DATABASE__SSLMODE
+ value:
+ _default: "disable"
+ - name: CDE_API_DATABASE__INSECURE_SKIP_TLS
+ value:
+ _default: "false"
+ - name: CDE_API_DATABASE_MAX_CONN_LIFETIME
+ value:
+ _default: "30m"
+ - name: CDE_API_DATABASE_MAX_CONN_IDLE_TIME
+ value:
+ _default: "10m"
+ - name: CDE_API_DATABASE_HEALTH_CHECK_PERIOD
+ value:
+ _default: "30s"
+ - name: CDE_API_DATABASE_POOL_SIZE
+ value:
+ _default: "3"
+ - name: CDE_API_REDIS__SSL
+ value:
+ _default: "false"
+ - name: CDE_API_REDIS__POOL_SIZE
+ value:
+ _default: "5"
+ - name: CDE_API_REDIS__MIN_IDLE_CONNS
+ value:
+ _default: "1"
+ - name: CDE_API_REDIS__DIAL_TIMEOUT_MS
+ value:
+ _default: "5000"
+ - name: CDE_API_REDIS__READ_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__WRITE_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__DEFAULT_TTL_MINUTES
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__PERMISSION_CACHE_ENABLED
+ value:
+ _default: "false"
+ - name: CDE_API_S3_USE_SSL
+ value:
+ _default: "true"
+ - name: CDE_API_S3_BUCKET_LOOKUP
+ value:
+ _default: "auto"
+ - name: CDE_API_S3_INSECURE_SKIP_TLS
+ value:
+ _default: "true"
+ - name: CDE_API_S3_CHECK_BUCKET
+ value:
+ _default: "false"
+ - name: CDE_API_S3_BUCKET_NAME
+ value:
+ _default: "documentations-prod"
+ - name: CDE_API_ZEEBE_USE_PLAINTEXT
+ value:
+ _default: "true"
+ - name: CDE_API_S32D_WORKER_PUBLISH_DOCUMENTS_TIMEOUT_MIN
+ value:
+ _default: "10"
+ - name: CDE_API_S32D_WORKER_PUBLISH_DOCUMENTS_MAX_JOBS
+ value:
+ _default: "2"
+ - name: CDE_API_MAILER_BASE_URL
+ value:
+ _default: "http://mailer-service.mailer:8000"
+ - name: CDE_API_MAILER_FROM_EMAIL
+ value:
+ _default: "noreply@sarex.io"
+ - name: CDE_API_SYSTEMLOG_BASE_URL
+ value:
+ _default: "http://api-service.system-log.svc.cluster.local:8000"
+ - name: CDE_API_SYSTEMLOG_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_FLOWS_URL
+ value:
+ _default: "http://backend-service.flows.svc.cluster.local:8000"
+ - name: CDE_API_TRANSMITTALS_URL
+ value:
+ _default: "http://transmittal-service.transmittal.svc.cluster.local:80"
+ - name: CDE_API_WORKSPACE_BASE_URL
+ value:
+ _default: "http://workspaces-service.workspaces.svc.cluster.local:8000"
+ - name: CDE_API_WORKSPACE_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_WORKSPACE_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_WORKFLOWS_CONFIG_FILEPATH
+ value:
+ _default: "/etc/app/tasks_execution_config.json"
+ - name: CDE_API_REDIS__HOST
+ value:
+ _default: "redis"
+ - name: CDE_API_REDIS__PORT
+ value:
+ _default: "6379"
+ - name: CDE_API_DATABASE__HOST
+ value:
+ _default: "sarex-vpsql-01.xc.wb.ru"
+ - name: CDE_API_DATABASE__PORT
+ value:
+ _default: "5432"
+ - name: CDE_API_DATABASE__NAME
+ value:
+ _default: "documentations_db"
+ secretEnvs:
+ - name: CDE_API_DATABASE__USER
+ secretName:
+ _default: "postgres-secret"
+ secretKey:
+ _default: "username"
+ - name: CDE_API_DATABASE__PASSWORD
+ secretName:
+ _default: "postgres-secret"
+ secretKey:
+ _default: "password"
+ - name: CDE_API_S3_ENDPOINT
+ secretName:
+ _default: "yc-s3"
+ secretKey:
+ _default: "endpoint_url"
+ - name: CDE_API_S3_ACCESS_KEY
+ secretName:
+ _default: "yc-s3"
+ secretKey:
+ _default: "key_id"
+ - name: CDE_API_S3_SECRET_KEY
+ secretName:
+ _default: "yc-s3"
+ secretKey:
+ _default: "access_key"
+ - name: CDE_API_ZEEBE_GATEWAY_ADDRESS
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "gateway_address"
+ - name: CDE_API_ZEEBE_CLIENT_ID
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_id"
+ - name: CDE_API_ZEEBE_CLIENT_SECRET
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_secret"
+ - name: CDE_API_ZEEBE_AUTH_SERVER_URL
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "auth_server_url"
+ volumes:
+ _default:
+ - name: tasks-execution-config
+ mountPath:
+ _default: /etc/app/tasks_execution_config.json
+ subPath:
+ _default: tasks_execution_config.json
+ readOnly:
+ _default: true
+ configMap:
+ name:
+ _default: tasks-execution-config-documentation-v2
+ items:
+ - key: tasks-execution-config-documentation-v2.json
+ path:
+ _default: tasks_execution_config.json
+ defaultMode:
+ _default: "0644"
diff --git a/apps/documentations/wb/cde-api.yaml b/apps/documentations/wb/cde-api.yaml
new file mode 100644
index 0000000..1903ce4
--- /dev/null
+++ b/apps/documentations/wb/cde-api.yaml
@@ -0,0 +1,452 @@
+---
+apiVersion: helm.toolkit.fluxcd.io/v2
+kind: HelmRelease
+metadata:
+ name: cde-api
+ namespace: documentations
+spec:
+ interval: 10m
+ chart:
+ spec:
+ chart: universal-chart
+ version: "0.1.7"
+ sourceRef:
+ kind: HelmRepository
+ name: yc-oci-charts
+ namespace: flux-system
+ interval: 10m
+ install:
+ remediation:
+ retries: 3
+ upgrade:
+ remediation:
+ retries: 3
+ values:
+ global:
+ env: _default
+ services:
+ cde-api:
+ enabled: true
+ deployment:
+ enabled: true
+ name:
+ _default: cde-api
+ replicaCount:
+ _default: 1
+ revisionHistoryLimit:
+ _default: 5
+ port:
+ _default: 8000
+ resources:
+ requests:
+ cpu:
+ _default: 200m
+ memory:
+ _default: 256Mi
+ image:
+ name:
+ _default: cr.yandex/crp3ccidau046kdj8g9q/cde-api:prod_c9bc246
+ pullPolicy:
+ _default: IfNotPresent
+ service:
+ enabled: true
+ name:
+ _default: cde-api
+ type:
+ _default: ClusterIP
+ port:
+ _default: 8000
+ targetPort:
+ _default: 8000
+ portName:
+ _default: http
+ imagePullSecrets:
+ enabled:
+ _default: true
+ name:
+ _default: dockerhub
+ envs:
+ - name: CDE_API_RESOURCES_BASE_URL
+ value:
+ _default: "http://iams.iam.svc.cluster.local:8080"
+ - name: CDE_API_RESOURCES_TIMEOUT
+ value:
+ _default: "10s"
+ - name: CDE_API_APP_NAME
+ value:
+ _default: "cde-api"
+ - name: CDE_API_SENTRY_DSN
+ value:
+ _default: ""
+ - name: CDE_API_SENTRY_ENVIRONMENT
+ value:
+ _default: ""
+ - name: CDE_API_LOG_LEVEL
+ value:
+ _default: "debug"
+ - name: CDE_API_HTTP_PORT
+ value:
+ _default: "8000"
+ - name: CDE_API_HTTP_READ_TIMEOUT
+ value:
+ _default: "0s"
+ - name: CDE_API_HTTP_WRITE_TIMEOUT
+ value:
+ _default: "0s"
+ - name: CDE_API_HTTP_IDLE_TIMEOUT
+ value:
+ _default: "120s"
+ - name: CDE_API_HTTP_READ_BUFFER_SIZE
+ value:
+ _default: "96"
+ - name: CDE_API_OBSERVABILITY_ENABLE
+ value:
+ _default: "true"
+ - name: CDE_API_OBSERVABILITY_HOST
+ value:
+ _default: "signoz-otel-collector-external.signoz.svc.cluster.local"
+ - name: CDE_API_OBSERVABILITY_PORT
+ value:
+ _default: "4317"
+ - name: CDE_API_S3_MAX_SINGLE_UPLOAD_SIZE
+ value:
+ _default: "5368709120"
+ - name: CDE_API_S3_MAX_PART_SIZE
+ value:
+ _default: "524288000"
+ - name: CDE_API_S3_UPLOAD_STALL_TIMEOUT
+ value:
+ _default: "10m"
+ - name: CDE_API_PUBLIC_LINK_HOST
+ value:
+ _default: "https://document-link-srx.wb.ru"
+ - name: CDE_API_WORKFLOW_BASE_URL
+ value:
+ _default: "http://workflows-api-service.workflow.svc.cluster.local:8000"
+ - name: CDE_API_WORKFLOW_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_WORKFLOW_RETRY_WAIT_MS
+ value:
+ _default: "500"
+ - name: CDE_API_WORKFLOW_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_BIMAPI_URL
+ value:
+ _default: "http://backend-service.bim.svc.cluster.local:8000"
+ - name: CDE_API_BIMAPI_V2_URL
+ value:
+ _default: "http://backend-service.bim.svc.cluster.local:8000"
+ - name: CDE_API_BIMAPI_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_BIMAPI_RETRY_WAIT_MS
+ value:
+ _default: "1000"
+ - name: CDE_API_BIMAPI_TIMEOUT_MS
+ value:
+ _default: "30000"
+ - name: CDE_API_BIMAPI_TIMEOUT_V2_MS
+ value:
+ _default: "300000"
+ - name: CDE_API_WORKSPACE_BASE_URL
+ value:
+ _default: "http://workspaces-service.workspaces.svc.cluster.local:8000"
+ - name: CDE_API_WORKSPACE_RETRY_COUNT
+ value:
+ _default: "3"
+ - name: CDE_API_WORKSPACE_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_SYSTEMLOG_BASE_URL
+ value:
+ _default: "http://api-service.system-log.svc.cluster.local:8000"
+ - name: CDE_API_SYSTEMLOG_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_CONTAINER_REGISTRY
+ value:
+ _default: "cr.yandex/crp3ccidau046kdj8g9q"
+ - name: CDE_API_WORKFLOWS_IMAGES_VERSION
+ value:
+ _default: "master"
+ - name: CDE_API_DJANGO_HOST
+ value:
+ _default: "http://backend.django.svc.cluster.local:8000"
+ - name: CDE_API_ENVIRONMENT
+ value:
+ _default: "production"
+ - name: CDE_API_CONVERTED_PDF_TO_S3
+ value:
+ _default: "true"
+ - name: CDE_API_CONVERT_DXF_TO_GEOJSON
+ value:
+ _default: "true"
+ - name: CDE_API_CONVERT_DWG_TO_GEOJSON
+ value:
+ _default: "true"
+ - name: CDE_API_USE_BIMV1_FOR_BIMV2
+ value:
+ _default: "true"
+ - name: CDE_API_EAV_HOST
+ value:
+ _default: "http://eav-service.eav.svc.cluster.local:8000"
+ - name: CDE_API_EAV_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_DOCUMENTATION_V2_URL
+ value:
+ _default: "http://documentations-api.documentations.svc.cluster.local:8080"
+ - name: CDE_API_INTERNAL_URL
+ value:
+ _default: "http://cde-api.documentations:8000"
+ - name: CDE_API_COPY_MAX_SYNC_WAIT_MS
+ value:
+ _default: "300000"
+ - name: CDE_API_LAST_MASTER_BIM
+ value:
+ _default: "36311"
+ - name: CDE_API_LAST_SLAVE_1_BIM
+ value:
+ _default: "94015"
+ - name: CDE_API_LAST_SLAVE_2_BIM
+ value:
+ _default: "135771"
+ - name: CDE_API_USE_BIM_INSERTER
+ value:
+ _default: "true"
+ - name: CDE_API_USE_LEGACY_BIM_FLOW
+ value:
+ _default: "0"
+ - name: CDE_API_DATABASE_MAX_CONN_LIFETIME
+ value:
+ _default: "30m"
+ - name: CDE_API_DATABASE_MAX_CONN_IDLE_TIME
+ value:
+ _default: "10m"
+ - name: CDE_API_DATABASE_HEALTH_CHECK_PERIOD
+ value:
+ _default: "30s"
+ - name: CDE_API_DATABASE_POOL_SIZE
+ value:
+ _default: "10"
+ - name: CDE_API_DIAGNOSTICS_SLOW_OPERATION_THRESHOLD
+ value:
+ _default: "30s"
+ - name: CDE_API_DATABASE__SSLMODE
+ value:
+ _default: "disable"
+ - name: CDE_API_DATABASE__INSECURE_SKIP_TLS
+ value:
+ _default: "false"
+ - name: CDE_API_DATABASE_OBSERVABILITY_ENABLE
+ value:
+ _default: "true"
+ - name: CDE_API_REDIS__DB
+ value:
+ _default: "5"
+ - name: CDE_API_REDIS__SSL
+ value:
+ _default: "false"
+ - name: CDE_API_REDIS__POOL_SIZE
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__MIN_IDLE_CONNS
+ value:
+ _default: "2"
+ - name: CDE_API_REDIS__DIAL_TIMEOUT_MS
+ value:
+ _default: "5000"
+ - name: CDE_API_REDIS__READ_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__WRITE_TIMEOUT_MS
+ value:
+ _default: "3000"
+ - name: CDE_API_REDIS__DEFAULT_TTL_MINUTES
+ value:
+ _default: "10"
+ - name: CDE_API_REDIS__PERMISSION_CACHE_ENABLED
+ value:
+ _default: "false"
+ - name: CDE_API_S3_BUCKET_NAME
+ value:
+ _default: "documentations-prod"
+ - name: CDE_API_S3_USE_SSL
+ value:
+ _default: "true"
+ - name: CDE_API_S3_BUCKET_LOOKUP
+ value:
+ _default: "auto"
+ - name: CDE_API_S3_INSECURE_SKIP_TLS
+ value:
+ _default: "true"
+ - name: CDE_API_S3_CHECK_BUCKET
+ value:
+ _default: "false"
+ - name: CDE_API_S3_CONNECT_TIMEOUT
+ value:
+ _default: "10s"
+ - name: CDE_API_S3_TLS_HANDSHAKE_TIMEOUT
+ value:
+ _default: "10s"
+ - name: CDE_API_S32D_MAX_ARCHIVE_SIZE_BYTES
+ value:
+ _default: "1099511627776"
+ - name: CDE_API_S32D_MAX_FILES_COUNT
+ value:
+ _default: "500"
+ - name: CDE_API_ZEEBE_USE_PLAINTEXT
+ value:
+ _default: "true"
+ - name: CDE_API_USERS_BASE_URL
+ value:
+ _default: "http://backend.django.svc.cluster.local:8000"
+ - name: CDE_API_DISK_BUCKET_NAMESPACE
+ value:
+ _default: "documentations-prod"
+ - name: CDE_API_USERS_ORIGINATOR
+ value:
+ _default: "docs_prod"
+ - name: CDE_API_USERS_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_MAILER_BASE_URL
+ value:
+ _default: "http://mailer-service.mailer:8000"
+ - name: CDE_API_MAILER_FROM_EMAIL
+ value:
+ _default: "noreply@sarex.io"
+ - name: CDE_API_MAILER_RETRY_COUNT
+ value:
+ _default: "2"
+ - name: CDE_API_MAILER_TIMEOUT_MS
+ value:
+ _default: "10000"
+ - name: CDE_API_FLOWS_URL
+ value:
+ _default: "http://backend-service.flows.svc.cluster.local:8000"
+ - name: CDE_API_TRANSMITTALS_URL
+ value:
+ _default: "http://transmittal-service.transmittal.svc.cluster.local:80"
+ - name: CDE_API_WORKFLOWS_CONFIG_FILEPATH
+ value:
+ _default: "/etc/app/tasks_execution_config.json"
+ - name: CDE_API_RABBITMQ__MARKS_ROUTING_KEY
+ value:
+ _default: "pdf_markings_input"
+ - name: CDE_API_RABBITMQ__HASHER_ROUTING_KEY
+ value:
+ _default: "hash.compute.normal"
+ - name: CDE_API_RABBITMQ__HASHER_EXCHANGE
+ value:
+ _default: "hash.compute"
+ - name: CDE_API_REDIS__HOST
+ value:
+ _default: "redis"
+ - name: CDE_API_REDIS__PORT
+ value:
+ _default: "6379"
+ - name: CDE_API_DATABASE__HOST
+ value:
+ _default: "sarex-vpsql-01.xc.wb.ru"
+ - name: CDE_API_DATABASE__PORT
+ value:
+ _default: "5432"
+ - name: CDE_API_DATABASE__NAME
+ value:
+ _default: "documentations_db"
+ - name: CDE_API_RABBITMQ__HOST
+ value:
+ _default: "rabbitmq.rabbitmq.svc.cluster.local"
+ - name: CDE_API_RABBITMQ__PORT
+ value:
+ _default: "5672"
+ - name: CDE_API_RABBITMQ__VHOST
+ value:
+ _default: "cde"
+ secretEnvs:
+ - name: CDE_API_PUBLIC_KEY
+ secretName:
+ _default: "public-key"
+ secretKey:
+ _default: "key"
+ - name: CDE_API_DATABASE__USER
+ secretName:
+ _default: "postgres-secret"
+ secretKey:
+ _default: "username"
+ - name: CDE_API_DATABASE__PASSWORD
+ secretName:
+ _default: "postgres-secret"
+ secretKey:
+ _default: "password"
+ - name: CDE_API_S3_ENDPOINT
+ secretName:
+ _default: "yc-s3"
+ secretKey:
+ _default: "endpoint_url"
+ - name: CDE_API_S3_ACCESS_KEY
+ secretName:
+ _default: "yc-s3"
+ secretKey:
+ _default: "key_id"
+ - name: CDE_API_S3_SECRET_KEY
+ secretName:
+ _default: "yc-s3"
+ secretKey:
+ _default: "access_key"
+ - name: CDE_API_ZEEBE_GATEWAY_ADDRESS
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "gateway_address"
+ - name: CDE_API_ZEEBE_CLIENT_ID
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_id"
+ - name: CDE_API_ZEEBE_CLIENT_SECRET
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "client_secret"
+ - name: CDE_API_ZEEBE_AUTH_SERVER_URL
+ secretName:
+ _default: "cde-api-zeebe-secret"
+ secretKey:
+ _default: "auth_server_url"
+ - name: CDE_API_USERS_AUTH_TOKEN
+ secretName:
+ _default: "django-auth"
+ secretKey:
+ _default: "key"
+ - name: CDE_API_RABBITMQ__USER
+ secretName:
+ _default: "hasher-rabbitmq-secret"
+ secretKey:
+ _default: "user"
+ - name: CDE_API_RABBITMQ__PASSWORD
+ secretName:
+ _default: "hasher-rabbitmq-secret"
+ secretKey:
+ _default: "password"
+ volumes:
+ _default:
+ - name: tasks-execution-config
+ mountPath:
+ _default: /etc/app/tasks_execution_config.json
+ subPath:
+ _default: tasks_execution_config.json
+ readOnly:
+ _default: true
+ configMap:
+ name:
+ _default: tasks-execution-config-documentation-v2
+ items:
+ - key: tasks-execution-config-documentation-v2.json
+ path:
+ _default: tasks_execution_config.json
+ defaultMode:
+ _default: "0644"
diff --git a/apps/documentations/wb/kustomization.yaml b/apps/documentations/wb/kustomization.yaml
index e8899c2..9f9c2ab 100644
--- a/apps/documentations/wb/kustomization.yaml
+++ b/apps/documentations/wb/kustomization.yaml
@@ -12,3 +12,11 @@ resources:
- frontend-static.yaml
- redis.yaml
- stamp-verification.yaml
+ - tasks-execution-config.yaml
+ - cde-api.yaml
+ - cde-api-worker-s32d-create-upload.yaml
+ - cde-api-worker-s32d-process-workflows.yaml
+ - cde-api-worker-s32d-publish-documents.yaml
+ - cde-api-worker-s32d-handle-error.yaml
+ - cde-api-worker-copy.yaml
+ - cde-api-worker-move.yaml
diff --git a/apps/documentations/wb/tasks-execution-config.yaml b/apps/documentations/wb/tasks-execution-config.yaml
new file mode 100644
index 0000000..f4fa140
--- /dev/null
+++ b/apps/documentations/wb/tasks-execution-config.yaml
@@ -0,0 +1,180 @@
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: tasks-execution-config-documentation-v2
+ namespace: documentations
+data:
+ tasks-execution-config-documentation-v2.json: |
+ {
+ "bim_api_metadata_inserter": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "bim_api_metadata_inserter_v2": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "bim_api_metadata_inserter_v4": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "bim_differ": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "bim_updater": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "convert_to_potree": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "docx_to_pdf": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "dwg_to_geojson": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_limits": "4",
+ "cpu_requests": "100m",
+ "memory_limits": "40Gi",
+ "memory_requests": "64Mi"
+ }
+ },
+ "e57_to_las": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "ifc_converter_job": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "las_merge": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "mesh_optimizer": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "mesh_optimizer_v2": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "parsing_template": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "processing_converter_to_tiles": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "processing_create_colored_surface_from_geotiff": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "rendering_template": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "split_pdf_document": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "split_pdf_document_legacy": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "update_orthomosaic_data": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "web_hook_caller": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "xml_to_glb": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "document_converter": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ },
+ "sparkjs_converter_wrapper": {
+ "executor": "k8s",
+ "resources": {
+ "cpu_requests": "100m",
+ "memory_requests": "64Mi"
+ }
+ }
+ }
diff --git a/docs/apps/documentations.md b/docs/apps/documentations.md
index a4dd446..1b84ead 100644
--- a/docs/apps/documentations.md
+++ b/docs/apps/documentations.md
@@ -15,11 +15,19 @@ flowchart LR
API[deployment: api]:::comp
Filestream[deployment: filestream
upload/download]:::comp
PDM[deployment: pdm
product data mgmt]:::comp
+ CDEAPI[deployment: cde-api
новый CDE API]:::comp
+ Workers[deployments: cde-api-worker-*
s32d x4, copy, move]:::comp
Frontend --> API
API --> Filestream
API --> PDM
+ CDEAPI --> API
+ Workers --> API
end
+ Zeebe[Camunda / Zeebe]:::infra
+ CDEPG[(PostgreSQL, общий)]:::data
+ Valkey[(Valkey)]:::data
+
DocLink[document-link]:::peer
CDE[cde]:::peer
Transmittal[transmittal]:::peer
@@ -32,6 +40,11 @@ flowchart LR
PDM --> PG
Filestream -->|files| S3 --> MinIO
API -. JWT .-> KC
+ CDEAPI --> CDEPG
+ CDEAPI --> Valkey
+ CDEAPI -->|files| S3
+ Workers --> CDEPG
+ Workers -->|jobs| Zeebe
classDef comp fill:#ec4899,stroke:#9d174d,stroke-width:2px,color:#fff
classDef peer fill:#fce7f3,stroke:#9d174d,color:#000
@@ -40,3 +53,12 @@ flowchart LR
classDef idp fill:#f59e0b,stroke:#92400e,color:#fff
style NS fill:#fdf2f8,stroke:#ec4899,stroke-width:2px
```
+
+## cde-api
+
+`cde-api` — новый CDE API (Go) и 6 воркеров (`s32d-create-upload`, `s32d-process-workflows`, `s32d-publish-documents`, `s32d-handle-error`, `copy`, `move`), развёрнутых в ns `documentations`. Не путать с легаси-сервисом `cde` (`cde-svc.cde`, см. `cde.md`).
+
+- Манифесты: `apps/documentations/base/cde-api*.yaml`, оверлеи — в каталогах контуров (`sarex-contour`, `yc-k8s-test` наследуют `base`; `d8-ugmk-prod`, `uralkal`, `vad` патчат `cde-api`; `ugok`, `brusnika-*`, `wb` — полные копии).
+- Postgres, Valkey (`redis`) и S3 общие с documentations. Секреты — Vault Agent (в образы cde-api добавлен busybox для shell-обёртки запуска); путь `secrets/data/apps/cde-api/zeebe` нужно создать. В k8s-контурах (`ugok`, `brusnika-*`, `wb`) вместо Vault используются Secret'ы.
+- CronJob'ы (`workspace-recovery`, `resource-id-backfill`, `sizer`) пока не перенесены.
+- Подробности: `apps/documentations/cde-api.CONFIGURATION.md`, `cde-api.ENDPOINTS.md`, `cde-api.env.example`, `cde-api.openapi.yaml`.