jiang
8942541759
feat(scada): serve project devices through pooled API
2026-09-08 18:18:30 +08:00
jiang
5966d039de
refactor(backend)!: separate algorithm and data layers
...
Reorganize algorithm packages by business responsibility, move orchestration into services, and keep database access behind pooled repositories.
Harden analysis API validation, remove unsafe legacy simulation endpoints, and add regression and architecture boundary coverage.
BREAKING CHANGE: legacy algorithm module paths and obsolete simulation endpoints are removed.
2026-09-04 17:30:55 +08:00
jiang
9b095c7439
refactor(db)!: clean up business SQL access
...
- make realtime replacement and analysis result writes transactional\n- consolidate SCADA repositories and remove process-global project state\n- validate SCADA batches and use indexed GIS-backed business queries\n\nBREAKING CHANGE: remove the public analysis result writer and the pipeline-health network_name query parameter.
2026-08-28 11:37:36 +08:00
jiang
b74799a39d
refactor(db)!: finalize pooled WNDB v2 migration
2026-08-27 17:26:22 +08:00
jiang
fa188af0b1
refactor(db)!: adopt project-routed pooled databases
...
Reorganize WNDB by responsibility and remove legacy scheme endpoints.\n\nRoute analysis and time-series access through project pools, preserve transactional realtime replacement, and refresh GIS materialized views after writes.\n\nAdd database architecture documentation, live pooling coverage, API contract updates, and executable container verification.\n\nBREAKING CHANGE: legacy scheme APIs and flat app.native.wndb module imports are removed.
2026-08-25 18:35:05 +08:00
jiang
fdbcc5c033
docs: clarify production configuration handling
2026-08-20 16:19:44 +08:00
jiang
d63d7ef1b6
merge: route project DSNs and remove legacy storage backends
...
Merge PR #2 after isolated OpenAPI, test, container build, and runtime smoke verification.
2026-08-18 18:34:47 +08:00
jiang
6b09662de6
refactor(storage): route project DSNs and remove legacy backends
2026-08-18 18:29:09 +08:00
jiang
b21eaffe40
merge: integrate agent-mvp into master
...
Merge PR #1 after backend security and contract gates passed.
2026-08-18 17:56:43 +08:00
jiang
8853877fcd
fix(security): close backend merge blockers
2026-08-18 17:51:29 +08:00
jiang
2581631b51
feat(simulation): 支持冲洗阀门状态与设置值
Generic Container CI/CD / test-build-publish (push) Successful in 2m39s
Server CI/CD v2 / build-test-publish-and-deploy (push) Successful in 2m40s
v2026.08.17.1
2026-08-17 18:28:57 +08:00
jiang
c250e97b87
ci(backend): block releases missing frontend API contract
2026-08-11 11:11:39 +08:00
jiang
69a7d53aff
ci: replace webhook deployment with v2 workflow
Generic Container CI/CD / test-build-publish (push) Successful in 2m32s
Server CI/CD v2 / build-test-publish-and-deploy (push) Successful in 2m32s
v2026.08.11.5
2026-08-11 10:17:01 +08:00
jiang
e4975b7be3
fix(container): exclude runtime configuration from image
2026-08-11 10:10:21 +08:00
jiang
a7e1ce6ef4
fix(db): enforce metadata membership foreign keys
Server CI/CD / docker-image (push) Failing after 34s
Server CI/CD / deploy-fallback-log (push) Successful in 1s
latest
2026-08-06 20:32:57 +08:00
jiang
4350612807
refactor(cli): remove deprecated Python implementation
2026-08-06 15:58:47 +08:00
jiang
b0a23a8012
fix(cli): map timeseries element types for backend
2026-08-05 18:39:00 +08:00
jiang
70c5b0e445
fix(keycloak): design logout completion page
2026-08-05 17:57:49 +08:00
jiang
29f691731c
fix(auth): enforce Keycloak access token age
2026-08-05 17:10:59 +08:00
jiang
1432934f12
feat(sensor): 返回候选节点最大管径
2026-08-03 19:00:00 +08:00
jiang
b0e9d480ef
refactor(sensor): 优化灵敏度监测点布置算法
2026-08-03 18:34:13 +08:00
jiang
87d922ea61
refactor(db): retain scheme start time as text
2026-08-03 11:18:38 +08:00
jiang
c126e99b60
docs(api): align project lock contract
2026-08-03 11:12:31 +08:00
jiang
b6a6527bab
refactor(auth): remove project-local user API
2026-08-03 10:39:41 +08:00
jiang
f010f071eb
refactor(db): align project template schema
2026-08-03 10:39:31 +08:00
jiang
0be31869b5
fix(api): encode untyped datetime responses
2026-07-31 18:39:36 +08:00
jiang
eac6b78598
fix(ci): align backend image with deployment
Server CI/CD / docker-image (push) Failing after 29s
Server CI/CD / deploy-fallback-log (push) Successful in 1s
2026-07-31 00:01:21 +08:00
jiang
1d88f8efbe
fix(api): wrap pre-paginated list responses
Server CI/CD / docker-image (push) Failing after 28s
Server CI/CD / deploy-fallback-log (push) Successful in 1s
2026-07-30 21:50:21 +08:00
jiang
ba947b616b
feat(api): standardize REST contracts and auth
2026-07-30 20:38:51 +08:00
jiang
ae1a657554
feat(server): add project RBAC and guarded workflows
2026-07-30 16:45:09 +08:00
jiang
3fbb17bb30
fix(sensor-placement): enforce project write boundaries
...
Bind every scheme request to ProjectContext, keep viewer access read-only, reject concurrent optimization jobs without blocking worker threads, and cap export/update payload sizes. Run optimization and workbook work off the event loop.
2026-07-30 16:21:38 +08:00
jiang
ddbb50173c
feat(sensor-placement): add editable scheme APIs
2026-07-30 16:16:51 +08:00
jiang
437eb5a19a
fix(auth): require preferred username claim
2026-07-30 14:21:21 +08:00
jiang
31e2728db1
refactor(api): unify scheme query endpoints
2026-07-30 11:01:45 +08:00
jiang
03bb2d75c2
docs: 编写中文 README
2026-07-22 11:26:06 +08:00
jiang
b977bf6725
fix(db): validate cached project connections
Server CI/CD / docker-image (push) Successful in 23s
Server CI/CD / deploy-fallback-log (push) Has been skipped
2026-07-21 11:26:21 +08:00
jiang
045d6c5b49
fix(simulation): use current user for stored schemes
Server CI/CD / docker-image (push) Successful in 23s
Server CI/CD / deploy-fallback-log (push) Has been skipped
2026-07-17 16:49:20 +08:00
jiang
db6032bd84
feat(burst-detection): update scada analysis flow
Server CI/CD / docker-image (push) Successful in 24s
Server CI/CD / deploy-fallback-log (push) Has been cancelled
2026-07-17 16:31:46 +08:00
jiang
b4ecfbb87a
fix(scada): use project-scoped metadata
2026-07-17 16:28:40 +08:00
jiang
a204980944
fix(leakage): accept display flow units
2026-07-17 11:45:58 +08:00
jiang
2b5f9b8514
fix(simulation): use report step for schemes
2026-07-16 15:47:26 +08:00
jiang
ca1579dcc2
fix(api): include simulation burst ids
2026-07-16 14:50:22 +08:00
jiang
775ecb8a58
fix(simulation): use hydraulic timestep
2026-07-16 14:16:06 +08:00
jiang
f72b56845f
fix(wndb): refresh closed project connections
2026-07-16 12:07:44 +08:00
jiang
baeaa8a2e1
fix(burst-location): correct normal data window
Server CI/CD / docker-image (push) Successful in 22s
Server CI/CD / deploy-fallback-log (push) Has been skipped
2026-07-09 11:51:40 +08:00
jiang
ca97de2e51
fix(burst-location): tolerate partial SCADA gaps
2026-07-09 10:49:53 +08:00
jiang
71fa2ae18c
ci: unzip health model in image build
Server CI/CD / docker-image (push) Successful in 22s
Server CI/CD / deploy-fallback-log (push) Has been skipped
2026-07-08 19:02:54 +08:00
jiang
76cf6c32bc
fix(agent): expose network context
Server CI/CD / docker-image (push) Successful in 16s
Server CI/CD / deploy-fallback-log (push) Has been skipped
2026-07-08 18:41:56 +08:00
jiang
5a91da0904
fix(burst-location): use correct data sources
...
Simulation mode reads scheme data for both burst and normal observations. Monitoring mode reuses the burst window when no normal window is provided.
2026-07-08 17:51:08 +08:00
jiang
d62bcae85e
fix(burst-location): normalize simulation ids
2026-07-08 17:17:41 +08:00