{"id":24812866,"url":"https://github.com/fintech-lsi/config-server","last_synced_at":"2025-07-22T14:35:45.897Z","repository":{"id":273280967,"uuid":"898616207","full_name":"Fintech-LSI/Config-server","owner":"Fintech-LSI","description":"A Spring Cloud Config Server that serves as the centralized configuration management service for our fintech microservices ecosystem. 🏢","archived":false,"fork":false,"pushed_at":"2025-01-21T10:58:17.000Z","size":61,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-03-25T16:36:18.001Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Fintech-LSI.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2024-12-04T17:59:28.000Z","updated_at":"2025-01-21T10:58:21.000Z","dependencies_parsed_at":"2025-01-20T00:27:25.536Z","dependency_job_id":"a1e95920-1947-43d7-8b23-1bd959fa9826","html_url":"https://github.com/Fintech-LSI/Config-server","commit_stats":null,"previous_names":["fintech-lsi/config-server"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Fintech-LSI/Config-server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fintech-LSI%2FConfig-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fintech-LSI%2FConfig-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fintech-LSI%2FConfig-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fintech-LSI%2FConfig-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Fintech-LSI","download_url":"https://codeload.github.com/Fintech-LSI/Config-server/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fintech-LSI%2FConfig-server/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266510722,"owners_count":23940705,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"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":"2025-01-30T14:38:29.049Z","updated_at":"2025-07-22T14:35:45.888Z","avatar_url":"https://github.com/Fintech-LSI.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Config Server 🔧\n\nA **Spring Cloud Config Server** that serves as the centralized configuration management service for our fintech microservices ecosystem. 🏢\n\n## Overview\n\nThe **Config Server** is a critical infrastructure component that:\n- 📐 Centralizes configuration management for all microservices\n- 🔄 Provides dynamic configuration updates\n- 🔐 Secures sensitive configuration data\n- ⚡ Must be started first before other microservices\n\n## Architecture\n\n![Config Server Architecture](https://velog.velcdn.com/images/18k7102dy/post/05d13c7a-9f34-437d-be41-ded0ebac1d61/image.webp)\n\nThe diagram above illustrates how the Config Server centralizes configuration management for all microservices in our ecosystem.\n\n## Project Structure\n\n```\nsrc/main/java/com/fintech/config_server/\n├── ConfigServerApplication.java\n└── resources/\n    └── configurations/               # Configuration files for all services\n        ├── auth-service.yaml\n        ├── discovery-service.yaml\n        ├── gateway-service.yaml\n        ├── loans-service.yaml\n        ├── notification-service.yaml\n        ├── transaction-service.yaml\n        ├── user-service.yaml\n        └── wallet-service.yaml\n```\n\n## Tech Stack\n\n- **Framework**: Spring Cloud Config Server\n- **Build Tool**: Maven\n- **Configuration Format**: YAML\n- **Server Port**: 8889\n- **Profile**: Native (File System Based)\n\n## Features\n\n- **Centralized Configuration**: Single source of truth for all microservice configurations\n- **Profile Management**: Support for different environments (dev, prod, etc.)\n- **Native Profile**: File system based configuration storage\n- **Real-time Updates**: Configuration changes without service restarts\n- **Security**: Encrypted sensitive properties\n\n## Getting Started\n\n1. **Prerequisites**\n    - Java 17+\n    - Maven\n    - Git (for Git backend if used instead of native)\n\n2. **Configuration**\n   ```yaml\n   server:\n     port: 8889\n   spring:\n     profiles:\n       active: native\n     application:\n       name: config-server\n     cloud:\n       config:\n         server:\n           native:\n             search-locations: classpath:/configurations\n   ```\n\n3. **Local Development**\n   ```bash\n   # Build the project\n   mvn clean package\n\n   # Run the Config Server (MUST BE STARTED FIRST)\n   mvn spring-boot:run\n   ```\n\n4. **Verify Setup**\n   ```bash\n   # Test configuration retrieval\n   curl http://localhost:8889/{service-name}/{profile}\n   ```\n\n## Configuration Files\n\nEach microservice has its dedicated configuration file:\n- `auth-service.yaml`: Authentication service configurations\n- `discovery-service.yaml`: Service discovery settings\n- `gateway-service.yaml`: API Gateway routing rules\n- `loans-service.yaml`: Loan service parameters\n- And more...\n\n## Important Notes\n\n1. **Startup Order**\n    - Config Server must be started FIRST\n    - Other services should start AFTER Config Server is running\n    - Services will fail to start if Config Server is unavailable\n\n2. **Configuration Updates**\n    - Changes to configuration files require either:\n        - Service restart\n        - Refresh scope trigger (`POST /actuator/refresh`)\n    - Consider using Spring Cloud Bus for automated refreshes\n\n3. **Security Considerations**\n    - Secure sensitive properties using encryption\n    - Implement authentication for Config Server access\n    - Use secure protocols for configuration retrieval\n\n## Monitoring\n\nThe Config Server exposes several endpoints for monitoring:\n- `/actuator/health`: Health check endpoint\n- `/actuator/info`: Information about the Config Server\n- `/actuator/metrics`: Metrics data\n\n## Troubleshooting\n\nCommon issues and solutions:\n\n1. **Services Can't Connect**\n    - Verify Config Server is running\n    - Check service bootstrap configuration\n    - Ensure correct port configuration (8889)\n\n2. **Configuration Not Found**\n    - Verify file exists in correct location\n    - Check file naming convention\n    - Confirm profile settings\n\n## 👥 Team\n\n| Avatar                                                                                                  | Name | Role | GitHub |\n|---------------------------------------------------------------------------------------------------------|------|------|--------|\n| \u003cimg src=\"https://github.com/zachary013.png\" width=\"50\" height=\"50\" style=\"border-radius: 50%\"/\u003e        | Zakariae Azarkan | DevOps Engineer | [@zachary013](https://github.com/zachary013) |\n| \u003cimg src=\"https://github.com/goalaphx.png\" width=\"50\" height=\"50\" style=\"border-radius: 50%\"/\u003e          | El Mahdi Id Lahcen | Frontend Developer | [@goalaphx](https://github.com/goalaphx) |\n| \u003cimg src=\"https://github.com/hodaifa-ech.png\" width=\"50\" height=\"50\" style=\"border-radius: 50%\"/\u003e       | Hodaifa | Cloud Architect | [@hodaifa-ech](https://github.com/hodaifa-ech) |\n| \u003cimg src=\"https://github.com/khalilh2002.png\" width=\"50\" height=\"50\" style=\"border-radius: 50%\"/\u003e       | Khalil El Houssine | Backend Developer | [@khalilh2002](https://github.com/khalilh2002) |\n| \u003cimg src=\"https://github.com/Medamine-Bahassou.png\" width=\"50\" height=\"50\" style=\"border-radius: 50%\"/\u003e | Mohamed Amine BAHASSOU | ML Engineer | [@Medamine-Bahassou](https://github.com/Medamine-Bahassou) |\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/config-enhancement`)\n3. Commit your changes (`git commit -m 'Add new configuration feature'`)\n4. Push to the branch (`git push origin feature/config-enhancement`)\n5. Open a Pull Request\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffintech-lsi%2Fconfig-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffintech-lsi%2Fconfig-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffintech-lsi%2Fconfig-server/lists"}