GeoServer 地图发布 wangcong1137-hash/dsh-geoserver
DeepSeek Harness在会话中发布图层并渲染 WMS 地图图像
29.2/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/2 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add wangcong1137-hash/dsh-geoserver该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · security
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 45 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(dependency_conflict · 2026/10/2) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件发起外部网络请求
查看扫描证据(共 16 处,展示前 16 条)
- 发起网络请求lib/index.js:167
const response = await fetch(url, { - 发起网络请求lib/index.js:183
const response = await fetch(url, { - 发起网络请求lib/publishing.js:151
const response = await fetch(endpoint, { - 读取本地文件lib/publishing.js:184
const actualPath = await realpath(resolve(sourcePath)); - 读取本地文件lib/publishing.js:185
const roots = await Promise.all(policy.allowedRoots.map(async (root) => realpath(resolve(root)))); - 读取本地文件lib/publishing.js:189
const info = await stat(actualPath); - 读取本地文件lib/publishing.js:206
return { bytes: await readFile(actualPath, { signal }), name, defaultName }; - 发起网络请求lib/publishing.js:220
const response = await fetch(url, { - 发起网络请求src/index.ts:298
const response = await fetch(url, { - 发起网络请求src/index.ts:320
const response = await fetch(url, { - 发起网络请求src/publishing.ts:253
const response = await fetch(endpoint, { - 读取本地文件src/publishing.ts:291
const actualPath = await realpath(resolve(sourcePath)) - 读取本地文件src/publishing.ts:292
const roots = await Promise.all(policy.allowedRoots.map(async root => realpath(resolve(root)))) - 读取本地文件src/publishing.ts:296
const info = await stat(actualPath) - 读取本地文件src/publishing.ts:311
return { bytes: await readFile(actualPath, { signal }), name, defaultName } - 发起网络请求src/publishing.ts:334
const response = await fetch(url, {
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-api-remotes@deepseek-ai/dsh-atomic-write@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-store@deepseek-ai/dsh-client-ui-primitives@deepseek-ai/dsh-client-ui-settings@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-code-runtime@deepseek-ai/dsh-credentials@deepseek-ai/dsh-home-paths给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 发布图层
- 渲染WMS地图图像
- 可视化配置
DSH 平台 GeoServer 交互插件,实现可视化配置与会话内地图图像输出。
README
由 DeepSeek 最新模型翻译生成dsh-geoserver
在 dsh web GUI 中读取 GeoServer WMS 服务并渲染地图图像。
- 4 个工具:列出工作区/图层/样式、发布 GeoTIFF/SHP ZIP 数据、抓取地图图像、诊断连通性。
- 设置卡片(设置 → 插件 → 插件配置):配置连接信息、发布限制和业务回调,无需改文件。
- 凭据永不进入浏览器:插件在宿主侧持有 Basic 认证、自行抓取图像,并通过 ctx.webServer 以 GUI 同源 URL 提供图片。
工具
| 工具 | 功能 |
| geoserver_list | 通过 GeoServer REST API 枚举工作区、图层(标题/边界/SRS/样式)与图片格式;REST 不可用时回退到 WMS GetCapabilities 文档。 |
| geoserver_publish | 上传一个本地 GeoTIFF,或一个包含单份 SHP 数据的 ZIP。GeoServer 验证图层后,可选通知已配置的业务系统 webhook。 |
| geoserver_map | 服务端抓取一张 WMS GetMap 图片,返回同源展示 URL(/geoserver-image/<token>)。agent 回复时直接渲染 markdown 图片。
展开完整文档(README 剩余 1 节)
dsh-geoserver
在 dsh web GUI 中读取 GeoServer WMS 服务并渲染地图图像。
- 4 个工具:列出工作区/图层/样式、发布 GeoTIFF/SHP ZIP 数据、抓取地图图像、诊断连通性。
- 设置卡片(设置 → 插件 → 插件配置):配置连接信息、发布限制和业务回调,无需改文件。
- 凭据永不进入浏览器:插件在宿主侧持有 Basic 认证、自行抓取图像,并通过 ctx.webServer 以 GUI 同源 URL 提供图片。
工具
| 工具 | 功能 |
| geoserver_list | 通过 GeoServer REST API 枚举工作区、图层(标题/边界/SRS/样式)与图片格式;REST 不可用时回退到 WMS GetCapabilities 文档。 |
| geoserver_publish | 上传一个本地 GeoTIFF,或一个包含单份 SHP 数据的 ZIP。GeoServer 验证图层后,可选通知已配置的业务系统 webhook。 |
| geoserver_map | 服务端抓取一张 WMS GetMap 图片,返回同源展示 URL(/geoserver-image/<token>)。agent 回复时直接渲染 markdown 图片。 |
| geoserver_probe | 连通性/认证诊断:可达性、认证状态、WMS 标题与一次小型渲染测试。 |
安装
0.3.x 版本面向 DSH 0.1.5.x,已适配其当前的设置接口与浏览器模块接口。
将包安装进 Web profile;该命令会自动把 dsh-geoserver 追加到 profile 的 dsh.profile.bundles 列表:
dsh plugin --profile web add dsh-geoserver
安装本地 checkout 时,用目录路径替换包名。组合包的 cordis.patch.yml 会插入 geoserver 插件行:
profile cordis.yml 补丁层 —— 例如 ~/.dsh/profiles/web/cordis.patch.yml
- insert:
- id: geoserver
name: dsh-geoserver
重启 dsh web 后,即使还没有服务器地址,Harness 也能正常启动,首次安装的用户可以进入设置卡片完成配置。在保存 URL 前,GeoServer 工具会返回明确的配置错误。插件支持两种配置方式:
1. 设置界面 —— 设置 → 插件 → 插件配置 → GeoServer:填写服务器地址、凭据、发布目录/大小限制及可选业务回调后保存。发布目录每行一个。回调令牌项只保存环境变量名,不保存真正的令牌。改动立即生效,无需重启。
2. 环境变量凭据 —— 配置 env(见下表)从进程环境读取 GEOSERVER_USER / GEOSERVER_PASS。
配置项
| 键 | 默认值 | 含义 |
| baseUrl | '' | GeoServer 基础地址,例如 http://host:8080/geoserver。空值允许首次启动;调用工具时会返回配置指引。 |
| env | [] | 读取凭据的环境变量名。第一个匹配 /user/i 的是用户名,第一个匹配 /pass\|pwd\|token/i 的是密码。直接配置的 username/password 优先。 |
| username / password | — | 直接配置的 Basic 认证凭据(env 的替代)。设置卡片把用户名写入设置区,把密码写入凭据域,不会写入 settings.yaml。 |
| cacheTtlMs | 600000 | 图片缓存 TTL(毫秒)。 |
| cacheMaxEntries | 50 | 缓存图片上限,超限淘汰最旧。 |
| publicBaseUrl | http://127.0.0.1:<webServer.port> | GUI 的外部可达地址(用于局域网访问);展示 URL 前缀。 |
| connectTimeoutMs | 15000 | 单请求 HTTP 超时(毫秒)。 |
| publishRoots | [] | geoserver_publish 允许读取的本地目录。空列表会禁用发布。可在设置卡片中编辑。 |
| defaultWorkspace | '' | geoserver_publish 未传 workspace 时使用的工作区;命令中的工作区优先。可在设置卡片中编辑。 |
| publishMaxBytes | 536870912 | TIF 或 ZIP 上传的最大字节数。可在设置卡片中编辑。 |
| webhookUrl | — | 发布成功后调用的可选业务系统接口。可在设置卡片中编辑。 |
| webhookTokenEnv | — | 可选的环境变量名,其值作为 webhook Bearer token。设置卡片只保存变量名。 |
| webhookTimeoutMs | 5000 | 业务 webhook 超时时间。可在设置卡片中编辑。 |
从 $DSH_HOME/.env(GEOSERVER_USER、GEOSERVER_PASS)读取凭据的示例:
- insert:
- id: geoserver
name: dsh-geoserver
config:
baseUrl: http://host:8080/geoserver
env: [GEOSERVER_USER, GEOSERVER_PASS]
publishRoots: [D:/data]
defaultWorkspace: demo
webhookUrl: https://business.example.com/api/geoserver/published
webhookTokenEnv: GEOSERVER_WEBHOOK_TOKEN
geoserver_publish 使用 kind: raster 发布 .tif/.tiff,使用 kind: vector 发布包含一份同名 SHP 数据的 .zip。配置 defaultWorkspace 后,命令可以省略 workspace;命令显式指定的工作区优先。已有图层会直接报错,不会自动覆盖。可选的扁平 metadata 字段(如 projectId、datasetId)会同时出现在工具结果和 webhook 请求中。
GeoServer 发布与 webhook 通知分别返回状态。webhook 失败不会把已经创建的 GeoServer 图层改判为发布失败;第一版会报告通知错误,但不自动重试。
工具调用示例:
{
"kind": "raster",
"sourcePath": "D:/data/dem.tif",
"workspace": "demo",
"metadata": {
"projectId": "project-123",
"datasetId": "dataset-456"
}
}
GeoServer 验证 demo:dem 后,webhook 会收到 type: "geoserver.layer.published"、version: 1 的事件,其中包含唯一 eventId、工作区/图层/存储名、WMS 和 WCS/WFS 地址、识别到的 SRS/边界,以及原样附带的 metadata。业务系统返回任意 HTTP 2xx 即视为通知成功。配置 webhookTokenEnv 后,请求会附带 Authorization: Bearer <value>;如果该环境变量不存在,插件会报告通知失败,而不是发送未认证请求。
本地测试回调服务
运行 pnpm webhook:receiver,测试服务会监听 http://127.0.0.1:3900。在设置卡片中把业务回调地址填为 http://127.0.0.1:3900/geoserver/published,回调令牌环境变量名先留空。收到的事件会打印到终端,也可通过 GET http://127.0.0.1:3900/events 查看;GET /health 用于检查服务是否正常。启动前设置 GEOSERVER_WEBHOOK_TEST_TOKEN 可要求 Bearer token。
开发
pnpm install # 开发依赖:typescript、tsdown、lightningcss
pnpm build # tsc(宿主侧)+ 类型检查(客户端)+ tsdown(客户端 bundle)
pnpm test # node --test 针对 lib/
模型体验
- geoserver_list 消耗 2 次 REST 调用,另有每个图层 1 次(skipDetails 可跳过);回退路径为 1 次 GetCapabilities 往返。
- geoserver_map 每次请求增加 1 次 GetMap 往返与一张内存小图;图片存于有界 TTL 缓存。
- geoserver_publish 会检查工作区和图层、上传一个文件,再验证发布结果。源文件必须位于 publishRoots 中,且不得超过 publishMaxBytes。
- 凭据在每次工具调用时从设置区(或组合配置)解析;设置卡片的密码通过凭据域写入,永不进入设置文档或任何响应。
已知限制与待办
- GetCapabilities 回退路径只解析图层名/标题/样式;CRS 与边界来自 REST 路径。
- 图片缓存在宿主内存;超大栅格请求受工具宽高上限(4096 像素)与 HTTP 超时约束。
- 暂未提供 WFS/WMTS 服务列表;REST 枚举覆盖 WMS 图层与样式。
- 设置卡片使用 DSH 原生 settingsScope,统一获得版本冲突保护、校验、持久化和变更通知。密码始终走凭据域,从不经响应回传。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
wangcong1137-hash/dsh-geoserver
在会话中发布图层并渲染 WMS 地图图像
相关插件 · 安全 / 权限
智能体逆向工程morluto/rea
用智能体逆向工程任何东西,从应用行为到原生二进制。
★ 415,267已汉化DSH
73.3
智能体集群框架ruvnet/ruflo
面向 Claude Code 与 Codex 的智能体元基座meta-harness。
★ 80,414已汉化MCP
71.9
WorkBuddy 模型接入corrinehu/dsh-workbuddy-connect
2026 年 10 月 20 日起,WorkBuddy…
★ 1,604已汉化DSH
71.7
破甲一键通z91772524-ai/pojia-next
十五个 AI…
★ 967已汉化DSH
71.6
AI 代理虚拟终端strukto-ai/mirage
Mirage 是给 AI 智能体用的虚拟终端:一层 shell,统管数据、命令行和运行时。Unix…
★ 3,756已汉化DSH
70.8
Agent 操作层agentic-os-org/ANOLISA
ANOLISA(Agentic Nexus Operating Layer & Interface System Architecture)|智能体操作系统,带运行时、安全、可观测性,以及 Tokenless 响应压缩,降低 token 用量与成本。
★ 649已汉化DSH
70.7