mirror of
https://gitee.com/pnoker/iot-dc3.git
synced 2026-11-03 11:42:04 +08:00
dc3_attachment.id lacked GENERATED BY DEFAULT AS IDENTITY (unlike dc3_session/dc3_message), so R2dbcAttachmentStore inserts without an id violated NOT NULL and every upload failed with HTTP 500. Add the identity clause to the canonical initdb DDL, ship idempotent migration 04 for databases initialized before the fix (with a setval guard so pre-existing explicit ids never collide), and resync the canonical fingerprint 0d9ad803... across the embedded hash and every distributed default. Co-Authored-By: Claude Code <noreply@anthropic.com>
90 lines
4.8 KiB
Bash
90 lines
4.8 KiB
Bash
# Local source-run environment for IDE, EnvFile plugins, or Maven runs.
|
|
# This file mirrors the "Local source-run defaults" section in ../../.env.example.
|
|
# It intentionally excludes Compose-only variables such as DC3_IMAGE_* and DC3_*_PORT.
|
|
|
|
# Postgres
|
|
POSTGRES_HOST=localhost
|
|
POSTGRES_PORT=35432
|
|
POSTGRES_USERNAME=dc3
|
|
POSTGRES_PASSWORD=dc3dc3dc3
|
|
POSTGRES_DB=dc3
|
|
DC3_R2DBC_URL=r2dbc:postgresql://localhost:35432/dc3
|
|
DC3_SCHEMA_FINGERPRINT=0d9ad80328ef1a6ba91e53cf0c6db25812b8bd236e280939f967beee687d5108
|
|
DC3_SCHEMA_CONTRACT=r2dbc-flag-day-v1
|
|
|
|
# Kafka
|
|
DC3_MQ_KAFKA_BOOTSTRAP=localhost:9092
|
|
|
|
# RabbitMQ
|
|
DC3_MQ_TYPE=rabbitmq
|
|
|
|
RABBITMQ_VIRTUAL_HOST=dc3
|
|
RABBITMQ_HOST=localhost
|
|
RABBITMQ_PORT=35672
|
|
RABBITMQ_USERNAME=dc3
|
|
RABBITMQ_PASSWORD=dc3dc3dc3
|
|
RABBITMQ_SSL_ENABLED=false
|
|
RABBITMQ_SSL_ALGORITHM=TLS
|
|
RABBITMQ_SSL_VALIDATE_SERVER_CERTIFICATE=false
|
|
RABBITMQ_SSL_VERIFY_HOSTNAME=false
|
|
|
|
# Mqtt
|
|
MQTT_BROKER_HOST=localhost
|
|
MQTT_BROKER_PORT=31883
|
|
MQTT_USERNAME=dc3
|
|
MQTT_PASSWORD=dc3dc3dc3
|
|
|
|
# gRPC
|
|
CENTER_AUTH_HOST=localhost
|
|
CENTER_MANAGER_HOST=localhost
|
|
CENTER_DATA_HOST=localhost
|
|
CENTER_AGENTIC_HOST=localhost
|
|
|
|
# Runtime
|
|
NODE_ENV=dev
|
|
DC3_FACADE_GRPC_DEADLINE_MS=3000
|
|
DC3_SECURITY_KEY=dc3-dev-only-65d8aac255cffeb389f1c9d521ae9a1a # local dev only; generate your own value for real deployments
|
|
AUTH_HMAC_SECRET=dc3-dev-only-f56ea45d339b35f8e409e55dc4eaf795 # local dev only; generate your own value for real deployments
|
|
POINT_BATCH_SIZE=500
|
|
POINT_BATCH_RECEIVE_TIMEOUT_MILLIS=100
|
|
POINT_CONCURRENT_CONSUMERS=4
|
|
POINT_MAX_CONCURRENT_CONSUMERS=16
|
|
POINT_PREFETCH_COUNT=1000
|
|
POINT_RETRY_MAX_RETRIES=3
|
|
POINT_RETRY_INITIAL_INTERVAL_MILLIS=1000
|
|
POINT_RETRY_MULTIPLIER=2
|
|
POINT_RETRY_MAX_INTERVAL_MILLIS=10000
|
|
DC3_DRIVER_LEASE_SECONDS=30
|
|
DC3_DRIVER_LEASE_RENEW_CRON=0/10 * * * * ?
|
|
DC3_DRIVER_LEASE_QUEUE_EXPIRES_MILLIS=300000
|
|
MQTT_BATCH_SPEED=100
|
|
MQTT_BATCH_INTERVAL=5
|
|
|
|
# Agentic fallback OpenAI-compatible provider. Normal providers are stored in dc3_model_provider.
|
|
AGENTIC_FALLBACK_OPENAI_BASE_URL=https://api.openai.com
|
|
AGENTIC_FALLBACK_OPENAI_API_KEY=
|
|
AGENTIC_FALLBACK_OPENAI_MODEL=gpt-4o
|
|
AGENTIC_FALLBACK_OPENAI_TEMPERATURE=0.7
|
|
AGENTIC_FALLBACK_OPENAI_MAX_TOKENS=2048
|
|
AGENTIC_MEMORY_SCHEMA_INIT=never
|
|
AGENTIC_MEMORY_ENABLED=true
|
|
AGENTIC_TOOL_CALLING_ENABLED=true
|
|
AGENTIC_MEMORY_MAX_MESSAGES=50
|
|
AGENTIC_ATTACHMENT_STORAGE_PATH=dc3/data/agentic/attachments
|
|
|
|
# Per-process overrides. Uncomment only for a single service process.
|
|
# TCP_PORT=6270
|
|
# UDP_PORT=6271
|
|
# POSTGRES_SCHEMA=dc3_manager
|
|
|
|
# Gateway route overrides. Usually CENTER_*_HOST is enough for local runs.
|
|
# GATEWAY_ROUTE_AUTH_TOKEN_URI=http://localhost:8300/
|
|
# GATEWAY_ROUTE_AUTH_URI=http://localhost:8300
|
|
# GATEWAY_ROUTE_MANAGER_URI=http://localhost:8400
|
|
# GATEWAY_ROUTE_DATA_URI=http://localhost:8500
|
|
# GATEWAY_ROUTE_AGENTIC_URI=http://localhost:8600
|
|
|
|
# OAuth RS256 signing key (Base64 PKCS8) - dev-only, generate your own for real deployments
|
|
DC3_OAUTH_JWT_PRIVATE_KEY=MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDbtqwfFp0Dinr4m9rNfxa5tbEF9mjO7vMQx8QZOvhkvjlZRUmpb+mZLFdfLLTFdU1chMyBB/vzQmQ7nGaodBlYGD3CqVq30zoJXNCE2EIqwoB/uv/nstrmrh5e+5h0dKYAER7TlKoyFLu2xsl4h/bJTWFaM81tMMfJ3xYDgkearvNcKUaFoOKmCT7KFSsZTf57H4yTzjciDp2o2mT4fI9fTrx0S7zq4If0B2V3iIC+jqUVnrYGRdEw+6K26qHVRw/8EAQrtR9QtPS6sNu9aMaS0FdIo1BcPdPUpXSXIUYWrXSB7CJOlSybk3Mx7pYNn7g3Lb6uhg3NPtepwz4tvg+7AgMBAAECggEABzyVZFmDIeF0ldCECRHaMGvIA5l0Ob7HSx7Z6PyF5sNAHjvMktA53ViRRJuVxlxCEioA0ZfvEyZEFUa06TUYMa67BqUUV1mVlfgND42KO8LaWEIOPhsA85qDtVdpZ6ftTSl+Re8SGWS4HtfZFhiSMNEZ6x09S93Qo7ak1aDUTj2lMAa1JgMBPmrNI+1CJ2AH4QQm55Emw03p+Y2kaBamnM9VBfLYkVSDKrtoYZiNku3UmhNjwSF1F6n/4/O92ZFiiuM7pT3N6Oi+TSJDzGtOY9ToQ2NP6bkg2llxcWnfAigYckrdEqOFaiIh8i+UdbmakLyuX/1uzPAwR8ONBX5taQKBgQD/21DtxsNj3rhuYwHb2VkA4fEsIJKqrl/beRWaVBmh/6NH4yZ68LQJjE90JGoaqm9hxj5X6Iqob6iKsVbvcP+e84WZco+PV7Iq1qBkLqLARlkwZsWxxQC9dvJk47YqZkgInJenFDSUBGT6YOmUg3LeKzVvUsrHOmNIKGDxUeVj8wKBgQDb1iyUaitE1cnKHglVVSVJ4w3YVaGtDGQv+84Qqz1vnHYvJmtkW8dKRWvq++A6uXrhNuH2uGIk6etaDviyPbBmcP3d5uBSDI5+S6aRd64taP06UxIpxgB5t1ZMOZZBMbj+FYQ22QC9puUBbe78B6br82/UFYy4KwXkU233Zme/GQKBgQCroLjG58AF7E8XbT6/9SppFycqjKcV62bN2ImPPr77Fnq3LD6R1YlPplld9Vdfj9irY8pKOelZV51de9xvPgOa4oxKBLkcVJ1lcxegXFA8XnRRrX8L4rS+Y13yI3X9NyM286QfJcSnTdNWyU+mmg6hzaZIiOcRga87pipxdphD1QKBgQDMU2+R7nATBaYNbwd7wazr1Na8eTLRNZA1LRSlV5O9li4eutXcLJW5yXZ5rOwHiPfWNf2mJFBMQQLX7MxoVoALZv/+bKWYfUU/y66gzB0e5dNfj3B1VSyB9M6IAIpQRBfOSU9e7ykKHQIC5xvWMoKKEfShqfnl/071njm6VfsdmQKBgQDC4syV1oYM2SHmHm7Atpc+ZPvL1P2r2czLx1mTgl2BosoB3DMr0KpS2db9sB/aGOubsE5RVD8Twmx7S9SC9CLbpS4kt4wV8Dz5VCK0YhkH7gK+ZGtDigm8EycpyjsnBDNF1Hpz6NfzNIMgKHs08lHgZ0rOi7PiYCX9eV3nw7raaQ==
|
|
DC3_OAUTH_JWT_PUBLIC_KEY=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA56U3VICcx5z4DFSb+SJcJ+p5inLyPbvlfUZSyqnTS4AuHapCaG1z7T7/Ethx6c9K8tebSt1y71bJeAB2ZeOk7zihg6AaeT4wD/Dq+u2WIAzXeZlluIEOInpx8aqbKt53LDw9/oLjROFlSzwbk4DIoWEN8RHqAzp6HpJwMAJPu+7z1m9AFcuJmGyydhMu1wwmCjdcSXf4mu43tcBibzUPQXfRTDmy5Su/qDEeRS3AQy/mW77iSkU9ngST1Owe6zHrAXGHReLEEIOJ0s5V6L1y153ShjN8JYwXIc+AcCtVmdfltt+ivz73ALZQM4UfCIYOE4qKpZceHGP4by7FeEN2YQIDAQAB
|