agile.zhou
2d7442fb14
feat: Etcd sync plugin full optimization
...
- 原子事务重构:使用etcd原生delete_range + 批量put原子事务,消除配置丢失风险
- 三层安全校验:防止误删其他业务数据,严格校验key前缀格式
- 大事务自动拆分:支持自动拆分大量配置同步,自动降级重试
- 时序问题修复:新同步触发时清除旧重试记录,避免旧版本覆盖新版本
- 增量同步模式:支持增量差异同步,减少90%+变更事件
- 指数退避+熔断:优化重试逻辑,避免重试风暴压垮集群
2026-03-17 01:31:23 +08:00
kklldog
af830db8aa
fix(sync): stabilize event bus DI and etcd delete endpoint
2026-03-01 18:20:39 +00:00
kklldog
3e5f13bc7f
fix(docker): include SyncPlugin projects in build
2026-02-25 13:39:13 +00:00
kklldog
eaaa08c63b
Fix SyncPlugin configuration and add Contracts to solution
...
1. Add AgileConfig.Server.SyncPlugin.Contracts to AgileConfig.sln
2. Modify SyncPluginInitializer to read config from appsettings.json
3. Add SyncPlugin section to appsettings.json with etcd plugin config
2026-02-24 09:32:42 +00:00
kklldog
ddae5deed4
Add SyncPlugin unit tests for ConfigSyncEventHandler
...
- Add 5 test cases covering:
- Valid timeline triggers sync
- No published configs skips sync
- Null timeline returns early
- Sync failure records failed attempt
- Exception records failed attempt
- All 11 tests pass (6 existing + 5 new)
2026-02-23 19:56:19 +00:00
kklldog
b84426a0a1
fix: remove remaining Consul references from solution file
2026-02-23 13:58:47 +00:00
kklldog
5296072a15
chore: remove Consul sync plugin
2026-02-23 13:38:34 +00:00
kklldog
57bfeb7c16
修复本地环境 cgroup 兼容性问题
2026-02-22 06:23:37 +00:00
kklldog
c0a3bec61e
修复 SyncPlugin DI 问题:SyncRetryService 使用 IServiceProvider 解析 scoped 服务
2026-02-22 06:01:54 +00:00
kklldog
b930b33af6
集成 SyncPlugin 到 Apisite 项目
2026-02-21 19:43:32 +00:00
kklldog
c708d9ddb4
refactor: extract ISyncPlugin and models to Contracts project to resolve circular dependency
...
- Create AgileConfig.Server.SyncPlugin.Contracts project
- Move ISyncPlugin interface and all models (SyncContext, SyncPluginConfig, etc.) to Contracts
- Update SyncPlugin, Plugins.Etcd, Plugins.Consul to reference Contracts
- Fix namespace references across all affected files
- Remove duplicate ISyncPlugin.cs from SyncPlugin project
2026-02-21 09:44:29 +00:00
kklldog
9b1897a51f
feat: Implement etcd plugin using HTTP API
...
- Use etcd v3 HTTP API instead of gRPC
- No external etcd package needed, just HttpClient
- Implement SyncAllAsync with delete + put operations
- Base64 encode keys/values as required by etcd API
2026-02-21 06:42:33 +00:00
kklldog
e17e2515f6
feat: Implement etcd plugin with replace-all sync strategy
...
- Use dotnet-etcd package for etcd connectivity
- Implement SyncAllAsync with delete + put operations
- Fix API usage (synchronous methods)
2026-02-20 19:41:35 +00:00
kklldog
4677d8686d
feat: Implement replace-all sync strategy with retry mechanism
...
- Simplify ISyncPlugin to only have SyncAllAsync (replace all)
- Add FailedSyncRecord to track failed syncs (stores only appId+env)
- Add SyncRetryService for retry logic (always fetches latest configs)
- Add SyncRetryBackgroundService for periodic retry
- Update event handler to use new sync strategy
- Placeholder implementations for Etcd and Consul plugins (TODO: fix API)
2026-02-20 19:32:41 +00:00
kklldog
d01bd49ee1
fix: Fix build errors and compile successfully
...
- Fix namespace issues in SyncPlugin models
- Fix Config entity property references (Group not GroupName)
- Fix SafeExecuteAsync lambda expressions
- Fix etcd client API usage (synchronous calls)
- Fix Consul KV.Set -> KV.Put
- Add missing using directives
2026-02-20 10:19:44 +00:00
kklldog
577ce9b191
fix: Fix etcd client package name (dotnet.etcd -> Etcd.Client)
...
- Change package reference from dotnet.etcd to Etcd.Client
- Update EtcdSyncPlugin to use new client API
2026-02-20 10:02:20 +00:00
kklldog
75a4050f5d
fix: Fix entity property names (Group instead of GroupName)
...
- Use correct property name Group instead of GroupName
- Use AppId as AppName since entity doesn't have that property
2026-02-20 08:24:13 +00:00
kklldog
00b27682da
feat: Add built-in plugin registration helpers
...
- Add RegisterBuiltInPlugins extension method
- Include Etcd and Consul plugin registration samples
- Plugins disabled by default, can be enabled via config
2026-02-19 19:14:14 +00:00
kklldog
df55c9fe4c
feat: Integrate SyncPlugin with event system
...
- Add ConfigSyncEventHandler to sync configs on publish
- Add ConfigDeleteSyncEventHandler to remove configs on delete
- Register SyncPlugin services in DI container
- Register sync event handlers in SystemEventHandlersRegister
2026-02-19 19:13:21 +00:00
kklldog
e5872242e9
feat: Add SyncPlugin infrastructure (draft version)
...
- Add AgileConfig.Server.SyncPlugin project with:
- ISyncPlugin interface
- SyncEngine for managing plugins
- ConfigSyncService for triggering sync on config changes
- SyncPluginConfig, SyncContext models
- Add AgileConfig.Server.SyncPlugin.Plugins.Etcd project:
- EtcdSyncPlugin implementation
- Add AgileConfig.Server.SyncPlugin.Plugins.Consul project:
- ConsulSyncPlugin implementation
- Update solution and project references
2026-02-19 19:06:54 +00:00
agile.zhou
a766175d57
Fix testcases
v-1.11.3
2025-12-29 23:58:51 +08:00
agile.zhou
23e80cbb98
Remove unnecessary packages
2025-12-29 22:58:09 +08:00
Minjie.ZHOU
b7dadb530f
Merge pull request #231 from dotnetcore/bugfix/fix-230
...
Fixbug #230
2025-12-29 22:52:07 +08:00
agile.zhou
af23bb53e3
Fixbug #230
2025-12-29 22:46:45 +08:00
Minjie.ZHOU
151ea3fe40
Update CHANGELOG.md
2025-12-22 22:31:53 +08:00
Minjie.ZHOU
dcb4a443f3
Merge pull request #229 from dotnetcore/bugfix/can-add-the-same-key-item
...
fixbug: can not add item if the key exist in different group
v-1.11.2
2025-12-22 22:25:17 +08:00
agile.zhou
c4473d460d
Update version no
2025-12-22 22:21:54 +08:00
agile.zhou
8a85977e1d
fixbug: can not add item if the key exist different group
2025-12-22 22:18:29 +08:00
agile.zhou
73a8c0fd24
Merge branch 'master' of https://github.com/dotnetcore/AgileConfig
2025-12-12 01:21:18 +08:00
agile.zhou
12aef8c0e1
Update icon
2025-12-12 01:21:05 +08:00
Minjie.ZHOU
5dcf8836ef
update pipeline
2025-12-11 01:05:07 +08:00
Minjie.ZHOU
847a5ae463
Update README.md
2025-12-06 01:08:43 +08:00
Minjie.ZHOU
bb038c8ac3
Merge pull request #224 from dotnetcore/codex/enhance-role-management-functionality
...
feat: add role management and dynamic permissions
v-1.11.0
2025-12-05 01:36:49 +08:00
agile.zhou
62efc90388
update role dropdown
test-1.11.4
2025-12-05 01:21:18 +08:00
agile.zhou
9deac73950
update workflow
2025-12-05 01:13:31 +08:00
agile.zhou
799d361a72
Set role dropdown tag color
test-1.11.3
2025-12-05 01:09:58 +08:00
agile.zhou
2419c7d74c
Update dockerfile
test-1.11.2
2025-12-04 23:47:06 +08:00
agile.zhou
58f13503cc
set permission group color
test-1.11.1
2025-12-04 23:09:25 +08:00
agile.zhou
87bd8209e7
clearn code
2025-11-24 01:39:04 +08:00
agile.zhou
3cf3208a73
Update NET version to 10
2025-11-24 01:11:06 +08:00
agile.zhou
4324c3f2c1
Update version to 1.11.0
test-1.11.0
2025-11-23 20:50:32 +08:00
agile.zhou
af4c27f0b2
fix side meun display issue
2025-11-23 20:14:50 +08:00
agile.zhou
74084adb9e
control backend permission
2025-11-23 02:35:25 +08:00
agile.zhou
a203a89fdc
Permission control almost done
2025-11-22 23:49:08 +08:00
agile.zhou
4935a8d079
fix obvious issue
2025-11-11 01:13:34 +08:00
agile.zhou
1075a31cc0
complete role control
2025-11-03 02:56:11 +08:00
agile.zhou
32003909e0
update
2025-11-02 22:26:25 +08:00
agile.zhou
ff419d3cf4
fix error
2025-11-02 22:23:01 +08:00
agile.zhou
0e97d91ea8
Update namespace fix compile error
2025-10-21 02:05:54 +08:00
Minjie.ZHOU
1e22ebc930
docs: document dynamic role management rollout
2025-10-21 00:48:33 +08:00