jiang
1d061f6099
feat: add project-scoped operations
Generic Container CI/CD / test-build-publish (push) Failing after 6s
Server CI/CD v2 / build-test-publish-and-deploy (push) Failing after 6s
2026-10-22 18:40:20 +08:00
jiang
d320972d57
fix(docker): pin GeoServer platform manifest
2026-10-22 13:03:26 +08:00
jiang
b4f3204489
chore(docker): advance PostGIS 14 patch line
2026-10-22 12:30:30 +08:00
jiang
1e71f8953b
test(server): align service access delegation expectation
2026-10-22 12:18:12 +08:00
jiang
f3818b3fed
fix(docker): include runtime samples in image
2026-10-22 12:14:40 +08:00
jiang
024abf07a8
chore(docker): pin secure runtime and resolve MCP dependencies
2026-10-22 12:08:36 +08:00
jiang
be6317eb48
feat(server): integrate MCP queries and investigation messaging
...
Add project-bound OAuth MCP queries and controlled analysis with scoped evidence,
limits, timeouts and a nearby-model spatial query using EPSG:4326 inputs.
Default nearby searches to 200 meters and five results.
Integrate investigation messaging/presentation, health/readiness and typed history;
remove duplicate web search and fix online simulation and compressed baseline writes.
Include project migrations 023-025; keep local credentials and demo seeding excluded.
Validation: 319 focused pytest checks; real PostGIS temporary-table regression;
read-only Jinqian bridge radius comparison; cross-language MCP discovery/calls.
2026-10-19 18:46:58 +08:00
jiang
2b6fc5aa52
feat(tasks): define investigation report contract and history
2026-10-10 16:02:46 +08:00
jiang
4a63fcd7ff
fix(workbench): serialize events and target work order sync
2026-10-08 15:41:49 +08:00
jiang
b70283c2ff
feat(work-orders): synchronize peripheral changes through events
2026-10-08 11:50:15 +08:00
jiang
afcbd52a5a
refactor(tasks): centralize access request lookup
2026-09-24 17:11:21 +08:00
jiang
540d73add8
docs(workbench): clarify active notification counting
2026-09-24 17:00:41 +08:00
jiang
ad813a7c16
feat(workbench): add dynamic task approval lifecycle
2026-09-24 16:36:12 +08:00
jiang
db092b0f5e
feat(workbench): keep only actionable notifications
2026-09-24 15:18:18 +08:00
jiang
e374b5b3cb
fix(workbench): remove synthetic check projections
2026-09-24 12:01:01 +08:00
jiang
1a6ff64bbe
feat(db): add workbench schema comments
2026-09-24 10:33:12 +08:00
jiang
91afe76c6d
docs(workbench): gate database rollout by project
2026-09-24 10:13:52 +08:00
jiang
ed06bc2bfc
fix(workbench): configure psycopg snapshot transaction
...
Open the psycopg transaction without unsupported SQLAlchemy-style options, then set the PostgreSQL isolation and read-only characteristics before the first query. Cover the exact snapshot endpoint path with a regression test.
2026-09-24 09:49:01 +08:00
jiang
9335bdc1ea
feat(workbench): persist operational workflows and events
2026-09-24 04:19:02 +08:00
jiang
baff7dfe9e
chore(api): refresh workbench contracts
2026-09-22 10:44:43 +08:00
jiang
7ab9b36a5e
feat(workbench): add runtime GIS and sample integrations
2026-09-22 10:44:31 +08:00
jiang
a3b4e75317
fix(api): return real total for user pagination
2026-09-15 10:55:29 +08:00
jiang
682c26fddd
feat(timeseries): unify element history queries
2026-09-14 12:30:41 +08:00
jiang
0685f6dd17
fix(sensor): use published coordinates for custom SRIDs
...
Result validation bypassed the project-specific GIS transform and called ST_Transform on custom engineering SRIDs. Read project and map coordinates from gis.junctions so every project uses its configured publication transform.
2026-09-11 11:29:51 +08:00
jiang
90b02057bc
feat(projects): automate project infrastructure provisioning
2026-09-11 10:57:51 +08:00
jiang
10a7a66a41
fix(metadata): hide inactive projects from user list
...
Project selection previously relied only on membership, so inactive projects remained visible. Filter at the repository boundary and add regression coverage.
2026-09-10 14:49:53 +08:00
jiang
bd857ea5e1
fix(ci): test backend in container environment
2026-09-08 18:26:20 +08:00
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): 支持冲洗阀门状态与设置值
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
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
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
2026-07-31 00:01:21 +08:00
jiang
1d88f8efbe
fix(api): wrap pre-paginated list responses
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
2026-07-21 11:26:21 +08:00
jiang
045d6c5b49
fix(simulation): use current user for stored schemes
2026-07-17 16:49:20 +08:00
jiang
db6032bd84
feat(burst-detection): update scada analysis flow
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
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
2026-07-08 19:02:54 +08:00
jiang
76cf6c32bc
fix(agent): expose network context
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
jiang
4c0a4b29e9
refactor(metadata): drop geoserver config refs
2026-06-13 14:57:33 +08:00
jiang
80ca985c28
fix(cli): use renamed backend APIs
2026-06-13 13:56:44 +08:00
jiang
5a55d65002
refactor(api): add kebab-case legacy aliases
2026-06-13 13:07:16 +08:00
jiang
d99f4cec6a
refactor(admin): remove geoserver config
2026-06-12 15:28:14 +08:00
jiang
a6e7a2e75c
feat(admin): add project metadata config
2026-06-12 15:08:37 +08:00
jiang
23c008f602
feat(auth): migrate to Keycloak metadata auth
2026-06-12 10:18:41 +08:00
jiang
2a762e63a7
添加 Gitea 服务器 URL 和用户解析功能
2026-06-10 16:27:42 +08:00
jiang
f6939f5516
移除 db_inp 目录的复制,添加临时文件夹创建
2026-06-10 16:22:38 +08:00
jiang
bbf6a0f7ba
更新代码检出步骤和工作区验证提示信息
2026-06-10 16:16:26 +08:00
jiang
5fd82b8e7c
添加代码检出步骤以确保工作区有效
2026-06-10 15:44:41 +08:00
jiang
2a823b2616
移除代码检出步骤,添加工作区验证
2026-06-10 15:41:59 +08:00
jiang
2af89eea1c
优化环境变量检查逻辑,移除不必要的密钥
2026-06-10 15:18:10 +08:00
jiang
26643d68c7
feat(ci): 添加 Gitea 仓库密钥 TJWATER_SERVER_ENV 检查
2026-06-10 15:08:47 +08:00
jiang
f35287d3cf
更新 dockerfile
2026-06-10 11:45:22 +08:00
jiang
4fa8e55748
删除 copilot 自述文件
2026-06-09 18:24:14 +08:00
jiang
7a9fcaae81
ci: add deployment trigger script
2026-06-09 18:22:16 +08:00
jiang
a1e9673d9a
ci: add Gitea package workflow
2026-06-09 18:18:22 +08:00
jiang
e588d1cf33
feat(api): add Tianditu geocoding
2026-06-09 17:09:42 +08:00
jiang
1712ecd4c7
feat(api): add web search endpoint
2026-06-09 16:13:24 +08:00
jiang
441979f581
修改默认超时时间
2026-06-05 19:11:53 +08:00
jiang
e336ffcd46
移除存在无效数据的 cli 命令
2026-06-05 16:42:03 +08:00
jiang
52b8f07abd
更新 cli 命令,新增 network 其他元素的属性查询
2026-06-05 15:48:53 +08:00
jiang
7efaeb41e8
新增pyclipper依赖
2026-06-05 13:43:53 +08:00