{"id":38498008,"url":"https://github.com/rdkcentral/xconfadmin","last_synced_at":"2026-04-01T18:28:08.435Z","repository":{"id":217519834,"uuid":"731551775","full_name":"rdkcentral/xconfadmin","owner":"rdkcentral","description":"XCONF as a whole is a service that is used by devices for firmware management, device RFC service configurations and log uploads/telemetry settings","archived":false,"fork":false,"pushed_at":"2026-03-19T06:23:43.000Z","size":1487,"stargazers_count":1,"open_issues_count":11,"forks_count":5,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-03-19T23:30:19.695Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rdkcentral.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-12-14T10:34:53.000Z","updated_at":"2026-03-17T06:52:54.000Z","dependencies_parsed_at":"2024-01-17T01:03:42.163Z","dependency_job_id":"98b9bb2b-7ffe-4eb7-9dc6-957b98c5eb52","html_url":"https://github.com/rdkcentral/xconfadmin","commit_stats":null,"previous_names":["rdkcentral/xconfadmin"],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/rdkcentral/xconfadmin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rdkcentral%2Fxconfadmin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rdkcentral%2Fxconfadmin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rdkcentral%2Fxconfadmin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rdkcentral%2Fxconfadmin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rdkcentral","download_url":"https://codeload.github.com/rdkcentral/xconfadmin/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rdkcentral%2Fxconfadmin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31290858,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T13:12:26.723Z","status":"ssl_error","status_checked_at":"2026-04-01T13:12:25.102Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-17T05:56:44.657Z","updated_at":"2026-04-01T18:28:08.416Z","avatar_url":"https://github.com/rdkcentral.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# XConf Admin\n\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n[![Go Version](https://img.shields.io/badge/Go-1.23%2B-blue.svg)](https://golang.org/)\n[![Build Status](https://img.shields.io/badge/Build-Passing-green.svg)]()\n\nXConf Admin is a comprehensive configuration management server designed for RDK (Reference Design Kit) devices. It provides a centralized platform for managing device configurations, firmware updates, telemetry settings, and various administrative functions across RDK deployments.\n\n## 🚀 Features\n\n- **Configuration Management**: Centralized management of device configurations\n- **Firmware Management**: Control firmware distribution and updates\n- **Telemetry Services**: Manage telemetry profiles and data collection\n- **Device Control Manager (DCM)**: Handle device control and settings\n- **Feature Management**: Control feature flags and rules\n- **Authentication \u0026 Authorization**: JWT-based security with role-based access control\n- **RESTful API**: Comprehensive REST API for all operations\n- **Metrics \u0026 Monitoring**: Built-in Prometheus metrics support\n- **Canary Deployments**: Support for gradual rollouts\n\n## 📋 Prerequisites\n\n- **Go 1.23+**: This project requires Go version 1.23 or later\n- **Cassandra**: For data persistence (configure in config file)\n- **Git**: For version control and building\n\n## 🛠️ Installation\n\n### 1. Clone the Repository\n\n```bash\ngit clone https://github.com/rdkcentral/xconfadmin.git\ncd xconfadmin\n```\n\n### 2. Install Dependencies\n\n```bash\ngo mod download\n```\n\n### 3. Build the Application\n\n```bash\nmake build\n```\n\nThis will create a binary `bin/xconfadmin-{OS}-{ARCH}` (e.g., `bin/xconfadmin-linux-amd64`)\n\n## ⚙️ Configuration\n\n### Environment Variables\n\nSet the following required environment variables:\n\n```bash\nexport SAT_CLIENT_ID='your_client_id'\nexport SAT_CLIENT_SECRET='your_client_secret'\nexport SECURITY_TOKEN_KEY='your_security_token_key'\n```\n\n### Configuration File\n\nCreate a configuration file based on the sample provided:\n\n```bash\ncp config/sample_xconfadmin.conf config/xconfadmin.conf\n```\n\nEdit the configuration file to match your environment settings including:\n- Server port and timeouts\n- Database connection details\n- Logging configuration\n- Authentication settings\n- Service endpoints\n\n## 🚀 Running the Application\n\n### 1. Create Log Directory\n\n```bash\nmkdir -p /app/logs/xconfadmin\n```\n\n### 2. Start the Server\n\n```bash\nbin/xconfadmin-linux-amd64 -f config/xconfadmin.conf\n```\n\n### 3. Verify Installation\n\nTest the server is running:\n\n```bash\ncurl http://localhost:9001/api/v1/version\n```\n\nExpected response:\n```json\n{\n  \"status\": 200,\n  \"message\": \"OK\",\n  \"data\": {\n    \"code_git_commit\": \"abc123\",\n    \"build_time\": \"2025-09-08T10:00:00Z\",\n    \"binary_version\": \"v1.0.0\",\n    \"binary_branch\": \"main\",\n    \"binary_build_time\": \"2025-09-08_10:00:00_UTC\"\n  }\n}\n```\n\n## 📖 API Documentation\n\nThe XConf Admin server provides several API endpoints organized by functionality:\n\n### Core APIs\n\n- **Version**: `GET /api/v1/version` - Get application version info\n- **Health**: `GET /health` - Health check endpoint\n- **Metrics**: `GET /metrics` - Prometheus metrics\n\n### Administrative APIs\n\n- **Authentication**: `/auth/*` - Authentication and authorization\n- **Firmware**: `/firmware/*` - Firmware management\n- **DCM**: `/dcm/*` - Device Control Manager\n- **Telemetry**: `/telemetry/*` - Telemetry configuration\n- **Features**: `/feature/*` - Feature management\n- **Settings**: `/setting/*` - Various device settings\n\n### Example API Calls\n\n```bash\n# Get firmware configurations\ncurl -H \"Authorization: Bearer \u003ctoken\u003e\" http://localhost:9001/api/firmware/configs\n\n# Update device settings\ncurl -X POST -H \"Authorization: Bearer \u003ctoken\u003e\" \\\n     -H \"Content-Type: application/json\" \\\n     -d '{\"key\":\"value\"}' \\\n     http://localhost:9001/api/dcm/settings\n```\n\n## 🏗️ Project Structure\n\n```\nxconfadmin/\n├── adminapi/           # Admin API handlers and services\n│   ├── auth/          # Authentication and authorization\n│   ├── canary/        # Canary deployment management\n│   ├── change/        # Change management\n│   ├── dcm/           # Device Control Manager\n│   ├── firmware/      # Firmware management\n│   ├── queries/       # Query handlers\n│   ├── rfc/           # Remote Feature Control\n│   ├── setting/       # Settings management\n│   └── telemetry/     # Telemetry services\n├── common/            # Common utilities and constants\n├── config/            # Configuration files\n├── http/              # HTTP utilities and middleware\n├── shared/            # Shared components\n├── taggingapi/        # Tagging API\n└── util/              # Utility functions\n```\n\n## 🧪 Testing\n\n### Run All Tests\n\n```bash\nmake test\n```\n\n### Run Tests Locally\n\n```bash\nmake localtest\n```\n\n### Generate Coverage Report\n\n```bash\nmake cover\nmake html\n```\n\n## 🔧 Development\n\n### Build for Development\n\n```bash\nmake build\n```\n\n### Clean Build Artifacts\n\n```bash\nmake clean\n```\n\n### Release Build\n\n```bash\nmake release\n```\n\n## 📊 Monitoring\n\nXConf Admin includes built-in monitoring capabilities:\n\n- **Prometheus Metrics**: Available at `/metrics` endpoint\n- **Health Checks**: Available at `/health` endpoint\n- **Structured Logging**: JSON-formatted logs with configurable levels\n- **Request Tracing**: Optional OpenTelemetry integration\n\n## 🤝 Contributing\n\nWe welcome contributions! Please see our [Contributing Guidelines](CONTRIBUTING.md) for details.\n\n### Development Workflow\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes\n4. Add tests for new functionality\n5. Run the test suite\n6. Submit a pull request\n\n## 📄 License\n\nThis project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.\n\n## 🆘 Support\n\nFor support and questions:\n\n- Create an issue in the GitHub repository\n- Check the [documentation](docs/)\n- Review existing issues and discussions\n\n## 🔗 Related Projects\n\n- [xconfwebconfig](https://github.com/rdkcentral/xconfwebconfig) - Web configuration service\n- [RDK Central](https://github.com/rdkcentral) - RDK Central organization\n\n---\n\n**Note**: This is a configuration management server for RDK devices. Ensure proper security measures are in place when deploying in production environments.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frdkcentral%2Fxconfadmin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frdkcentral%2Fxconfadmin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frdkcentral%2Fxconfadmin/lists"}