feat: add kafka admin integration
This commit is contained in:
@@ -68,6 +68,40 @@ ENV REDIS_PRESENCE_TTL_SECONDS=120
|
||||
ENV REDIS_CACHE_TTL_SECONDS=300
|
||||
ENV REDIS_SHORT_STATE_TTL_SECONDS=600
|
||||
ENV REDIS_GROUP_FANOUT_ENABLED=true
|
||||
ENV KAFKA_ENABLED=false
|
||||
ENV KAFKA_BROKERS_JSON='[]'
|
||||
ENV KAFKA_CLIENT_ID=im-server
|
||||
ENV KAFKA_CONSUMER_GROUP=im-server
|
||||
ENV KAFKA_DIAL_TIMEOUT_MS=3000
|
||||
ENV KAFKA_WRITE_TIMEOUT_MS=3000
|
||||
ENV KAFKA_READ_TIMEOUT_MS=3000
|
||||
ENV KAFKA_REQUIRED_ACKS=1
|
||||
ENV KAFKA_ALLOW_AUTO_TOPIC_CREATION=false
|
||||
ENV KAFKA_TLS_ENABLED=false
|
||||
ENV KAFKA_MAX_RETRY_COUNT=5
|
||||
ENV KAFKA_RETRY_BACKOFF_MS='[10000,30000,60000,300000,900000]'
|
||||
ENV KAFKA_DEAD_LETTER_RETENTION_SECONDS=7776000
|
||||
ENV KAFKA_TOPIC_ADMIN_COMMAND=im.admin.command
|
||||
ENV KAFKA_TOPIC_ADMIN_COMMAND_RESULT=im.admin.command.result
|
||||
ENV KAFKA_TOPIC_CONFIG_EVENT=im.config.event
|
||||
ENV KAFKA_TOPIC_BUSINESS_EVENT=im.business.event
|
||||
ENV KAFKA_TOPIC_MESSAGE_PERSIST=im.message.persist
|
||||
ENV KAFKA_TOPIC_MESSAGE_PUSH=im.message.push
|
||||
ENV KAFKA_TOPIC_FILE_SECURITY=im.file.security
|
||||
ENV KAFKA_TOPIC_FILE_LIFECYCLE=im.file.lifecycle
|
||||
ENV KAFKA_TOPIC_WORKBENCH_EVENT=im.workbench.event
|
||||
ENV KAFKA_TOPIC_CACHE_INVALIDATE=im.cache.invalidate
|
||||
ENV KAFKA_TOPIC_AUDIT_EVENT=im.audit.event
|
||||
ENV KAFKA_TOPIC_DEAD_LETTER=im.dead.letter
|
||||
ENV INTERNAL_API_ENABLED=false
|
||||
ENV INTERNAL_API_TIME_WINDOW_SECONDS=300
|
||||
ENV INTERNAL_API_HOTGO_SERVICE_NAME=hotgo-admin
|
||||
ENV INTERNAL_API_HOTGO_SECRET=
|
||||
ENV ADMIN_INTERNAL_API_ENABLED=false
|
||||
ENV ADMIN_INTERNAL_API_BASE_URL=
|
||||
ENV ADMIN_INTERNAL_API_SERVICE_NAME=im-server
|
||||
ENV ADMIN_INTERNAL_API_SECRET=
|
||||
ENV ADMIN_INTERNAL_API_TIMEOUT_MS=3000
|
||||
|
||||
# The PostgreSQL DSN connection.
|
||||
ENV POSTGRES_DSN='postgresql://postgres:postgres@localhost:5432/tinode?sslmode=disable&connect_timeout=10'
|
||||
|
||||
@@ -48,6 +48,40 @@ ENV REDIS_PRESENCE_TTL_SECONDS=120
|
||||
ENV REDIS_CACHE_TTL_SECONDS=300
|
||||
ENV REDIS_SHORT_STATE_TTL_SECONDS=600
|
||||
ENV REDIS_GROUP_FANOUT_ENABLED=true
|
||||
ENV KAFKA_ENABLED=false
|
||||
ENV KAFKA_BROKERS_JSON='[]'
|
||||
ENV KAFKA_CLIENT_ID=im-server
|
||||
ENV KAFKA_CONSUMER_GROUP=im-server
|
||||
ENV KAFKA_DIAL_TIMEOUT_MS=3000
|
||||
ENV KAFKA_WRITE_TIMEOUT_MS=3000
|
||||
ENV KAFKA_READ_TIMEOUT_MS=3000
|
||||
ENV KAFKA_REQUIRED_ACKS=1
|
||||
ENV KAFKA_ALLOW_AUTO_TOPIC_CREATION=false
|
||||
ENV KAFKA_TLS_ENABLED=false
|
||||
ENV KAFKA_MAX_RETRY_COUNT=5
|
||||
ENV KAFKA_RETRY_BACKOFF_MS='[10000,30000,60000,300000,900000]'
|
||||
ENV KAFKA_DEAD_LETTER_RETENTION_SECONDS=7776000
|
||||
ENV KAFKA_TOPIC_ADMIN_COMMAND=im.admin.command
|
||||
ENV KAFKA_TOPIC_ADMIN_COMMAND_RESULT=im.admin.command.result
|
||||
ENV KAFKA_TOPIC_CONFIG_EVENT=im.config.event
|
||||
ENV KAFKA_TOPIC_BUSINESS_EVENT=im.business.event
|
||||
ENV KAFKA_TOPIC_MESSAGE_PERSIST=im.message.persist
|
||||
ENV KAFKA_TOPIC_MESSAGE_PUSH=im.message.push
|
||||
ENV KAFKA_TOPIC_FILE_SECURITY=im.file.security
|
||||
ENV KAFKA_TOPIC_FILE_LIFECYCLE=im.file.lifecycle
|
||||
ENV KAFKA_TOPIC_WORKBENCH_EVENT=im.workbench.event
|
||||
ENV KAFKA_TOPIC_CACHE_INVALIDATE=im.cache.invalidate
|
||||
ENV KAFKA_TOPIC_AUDIT_EVENT=im.audit.event
|
||||
ENV KAFKA_TOPIC_DEAD_LETTER=im.dead.letter
|
||||
ENV INTERNAL_API_ENABLED=false
|
||||
ENV INTERNAL_API_TIME_WINDOW_SECONDS=300
|
||||
ENV INTERNAL_API_HOTGO_SERVICE_NAME=hotgo-admin
|
||||
ENV INTERNAL_API_HOTGO_SECRET=
|
||||
ENV ADMIN_INTERNAL_API_ENABLED=false
|
||||
ENV ADMIN_INTERNAL_API_BASE_URL=
|
||||
ENV ADMIN_INTERNAL_API_SERVICE_NAME=im-server
|
||||
ENV ADMIN_INTERNAL_API_SECRET=
|
||||
ENV ADMIN_INTERNAL_API_TIMEOUT_MS=3000
|
||||
|
||||
# Tenant registry lives in the hotgo database (shared with im_manager); tenant
|
||||
# DB routing resolves to the same tinode DB for the seeded "default" tenant.
|
||||
|
||||
@@ -117,6 +117,53 @@
|
||||
}
|
||||
},
|
||||
|
||||
"kafka": {
|
||||
"enabled": $KAFKA_ENABLED,
|
||||
"brokers": $KAFKA_BROKERS_JSON,
|
||||
"client_id": "$KAFKA_CLIENT_ID",
|
||||
"consumer_group": "$KAFKA_CONSUMER_GROUP",
|
||||
"dial_timeout_ms": $KAFKA_DIAL_TIMEOUT_MS,
|
||||
"write_timeout_ms": $KAFKA_WRITE_TIMEOUT_MS,
|
||||
"read_timeout_ms": $KAFKA_READ_TIMEOUT_MS,
|
||||
"required_acks": $KAFKA_REQUIRED_ACKS,
|
||||
"allow_auto_topic_creation": $KAFKA_ALLOW_AUTO_TOPIC_CREATION,
|
||||
"tls_enabled": $KAFKA_TLS_ENABLED,
|
||||
"max_retry_count": $KAFKA_MAX_RETRY_COUNT,
|
||||
"retry_backoff_ms": $KAFKA_RETRY_BACKOFF_MS,
|
||||
"dead_letter_retention_seconds": $KAFKA_DEAD_LETTER_RETENTION_SECONDS,
|
||||
"topics": {
|
||||
"admin_command": "$KAFKA_TOPIC_ADMIN_COMMAND",
|
||||
"admin_command_result": "$KAFKA_TOPIC_ADMIN_COMMAND_RESULT",
|
||||
"config_event": "$KAFKA_TOPIC_CONFIG_EVENT",
|
||||
"business_event": "$KAFKA_TOPIC_BUSINESS_EVENT",
|
||||
"message_persist": "$KAFKA_TOPIC_MESSAGE_PERSIST",
|
||||
"message_push": "$KAFKA_TOPIC_MESSAGE_PUSH",
|
||||
"file_security": "$KAFKA_TOPIC_FILE_SECURITY",
|
||||
"file_lifecycle": "$KAFKA_TOPIC_FILE_LIFECYCLE",
|
||||
"workbench_event": "$KAFKA_TOPIC_WORKBENCH_EVENT",
|
||||
"cache_invalidate": "$KAFKA_TOPIC_CACHE_INVALIDATE",
|
||||
"audit_event": "$KAFKA_TOPIC_AUDIT_EVENT",
|
||||
"dead_letter": "$KAFKA_TOPIC_DEAD_LETTER"
|
||||
}
|
||||
},
|
||||
"internal_api": {
|
||||
"enabled": $INTERNAL_API_ENABLED,
|
||||
"time_window_seconds": $INTERNAL_API_TIME_WINDOW_SECONDS,
|
||||
"services": {
|
||||
"$INTERNAL_API_HOTGO_SERVICE_NAME": {
|
||||
"secret": "$INTERNAL_API_HOTGO_SECRET",
|
||||
"allow": ["admin_query"]
|
||||
}
|
||||
}
|
||||
},
|
||||
"admin_internal_api": {
|
||||
"enabled": $ADMIN_INTERNAL_API_ENABLED,
|
||||
"base_url": "$ADMIN_INTERNAL_API_BASE_URL",
|
||||
"service_name": "$ADMIN_INTERNAL_API_SERVICE_NAME",
|
||||
"secret": "$ADMIN_INTERNAL_API_SECRET",
|
||||
"timeout_ms": $ADMIN_INTERNAL_API_TIMEOUT_MS
|
||||
},
|
||||
|
||||
"acc_validation": {
|
||||
"email": {
|
||||
"add_to_tags": true,
|
||||
|
||||
Reference in New Issue
Block a user