feat: implement XMPP client and development server infrastructure
## XMPP Client Implementation - Create XMPP client with mellium.im/xmpp library - Add SASL Plain authentication with TLS support - Implement basic connection, ping, and disconnect functionality - Add TLS certificate verification skip option for development ## Development Server Management - Add custom makefile targets for XMPP server management - Implement devserver_start, devserver_stop, devserver_status commands - Add devserver_logs, devserver_clean, devserver_doctor commands - Create comprehensive sidecar/README.md with setup instructions ## XMPP Client Doctor Tool - Create cmd/xmpp-client-doctor diagnostic tool - Add CLI flags for server configuration with sensible defaults - Implement verbose logging and connection testing - Include insecure TLS option for development environments ## Bridge Architecture Foundation - Create placeholder bridge structs in proper package hierarchy - Add server/bridge/mattermost and server/bridge/xmpp packages - Update plugin initialization to create bridge instances - Maintain clean separation between Mattermost and XMPP concerns ## Dependencies and Configuration - Add mellium.im/xmpp dependencies to go.mod - Fix plugin.json password field type validation - Update README.md with XMPP bridge description and doctor usage - Add .claude.md to .gitignore for local development notes All tests passing. Ready for Phase 4 (Bridge Logic) implementation. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
f1a6cb138f
commit
07ff46624d
12 changed files with 763 additions and 10 deletions
72
build/custom_xmpp_server.mk
Normal file
72
build/custom_xmpp_server.mk
Normal file
|
@ -0,0 +1,72 @@
|
|||
# XMPP Development Server Management
|
||||
# This file provides targets for managing the development XMPP server
|
||||
|
||||
# XMPP server configuration
|
||||
XMPP_COMPOSE_FILE := sidecar/docker-compose.yml
|
||||
XMPP_ADMIN_URL := http://localhost:9090
|
||||
XMPP_SERVER_HOST := localhost
|
||||
XMPP_SERVER_PORT := 5222
|
||||
|
||||
.PHONY: devserver_start devserver_stop devserver_status devserver_logs devserver_clean devserver_doctor devserver_help
|
||||
|
||||
## Start the XMPP development server
|
||||
devserver_start:
|
||||
@echo "Starting XMPP development server..."
|
||||
@if [ ! -f "$(XMPP_COMPOSE_FILE)" ]; then \
|
||||
echo "Error: $(XMPP_COMPOSE_FILE) not found"; \
|
||||
exit 1; \
|
||||
fi
|
||||
@cd sidecar && docker compose up -d
|
||||
@echo "✅ XMPP server started successfully"
|
||||
@echo "Admin console: $(XMPP_ADMIN_URL)"
|
||||
@echo "XMPP server: $(XMPP_SERVER_HOST):$(XMPP_SERVER_PORT)"
|
||||
@echo ""
|
||||
@echo "See sidecar/README.md for setup instructions"
|
||||
|
||||
## Stop the XMPP development server
|
||||
devserver_stop:
|
||||
@echo "Stopping XMPP development server..."
|
||||
@cd sidecar && docker compose down
|
||||
@echo "✅ XMPP server stopped"
|
||||
|
||||
## Check status of XMPP development server
|
||||
devserver_status:
|
||||
@echo "XMPP Development Server Status:"
|
||||
@cd sidecar && docker compose ps
|
||||
|
||||
## View XMPP server logs
|
||||
devserver_logs:
|
||||
@echo "XMPP Server Logs (press Ctrl+C to exit):"
|
||||
@cd sidecar && docker compose logs -f openfire
|
||||
|
||||
## Clean up XMPP server data and containers
|
||||
devserver_clean:
|
||||
@echo "⚠️ This will remove all XMPP server data and containers!"
|
||||
@read -p "Are you sure? (y/N): " confirm && [ "$$confirm" = "y" ] || exit 1
|
||||
@echo "Cleaning up XMPP development server..."
|
||||
@cd sidecar && docker compose down -v --remove-orphans
|
||||
@docker system prune -f --filter label=com.docker.compose.project=sidecar
|
||||
@echo "✅ XMPP server cleaned up"
|
||||
|
||||
## Test XMPP client connectivity with doctor tool (insecure for development)
|
||||
devserver_doctor:
|
||||
@echo "Testing XMPP client connectivity..."
|
||||
@go run cmd/xmpp-client-doctor/main.go -insecure-skip-verify=true -verbose=true
|
||||
|
||||
## Show XMPP development server help
|
||||
devserver_help:
|
||||
@echo "XMPP Development Server Targets:"
|
||||
@echo ""
|
||||
@echo " devserver_start - Start the XMPP development server"
|
||||
@echo " devserver_stop - Stop the XMPP development server"
|
||||
@echo " devserver_status - Check server status"
|
||||
@echo " devserver_logs - View server logs"
|
||||
@echo " devserver_clean - Clean up server data and containers"
|
||||
@echo " devserver_doctor - Test XMPP client connectivity"
|
||||
@echo " devserver_help - Show this help message"
|
||||
@echo ""
|
||||
@echo "Server Details:"
|
||||
@echo " Admin Console: $(XMPP_ADMIN_URL)"
|
||||
@echo " XMPP Server: $(XMPP_SERVER_HOST):$(XMPP_SERVER_PORT)"
|
||||
@echo ""
|
||||
@echo "See sidecar/README.md for detailed setup instructions"
|
Loading…
Add table
Add a link
Reference in a new issue