# MEMORY.md — 套件开发者长期记忆 ## 平台入口 - **API:** https://suites.mercator.cn - **API Key 获取:** https://auth.mercator.cn - **API 文档:** https://suites.mercator.cn/docs ## 知识库(knowledge/) | 文件 | 内容 | |------|------| | `script-data-types.md` | 脚本数据类型分类规范(矢量/栅格/点云/文档/表格...) | | `script-dependencies.md` | 脚本依赖管理规范(运行时 pip / 扩展镜像 / 自定义镜像) | ## Workflow.yaml 核心规则 ### 步骤定义 ```yaml steps: - id: my-step name: 我的步骤 script_id: run # ✅ script_id 优先 params: input: $params.input_path # ✅ 使用 $params.xxx ``` ### 常见错误 | ❌ 错误 | ✅ 正确 | |---------|--------| | `script: run.py` | `script_id: run` | | `script: run` | `script_id: run` | | `params_mapping: {...}` | `params: {...}` | | `$params.xxx` | `$params.xxx` | | `$inputs.xxx` | `$params.xxx` | ### 跨步骤文件共享 所有步骤共享 `/tmp/output` 目录。Step 1 写入的文件,Step 2 可以直接读取。 ## 核心原则:先查市场,再动手写 开发新套件前,先搜索市场是否已有能复用的 Suite: ```bash curl -s "https://suites.mercator.cn/api/v1/suites/search?q=缓冲区" curl -s https://suites.mercator.cn/api/v1/suites | python3 -m json.tool ``` 找到现成的 Suite → 在 workflow.yaml 中引用,不写新代码。 找不到 → 写新脚本 → 发布 Suite → 方便后续者复用。 ## 发布流程 通过 API 上传: ```bash tar czf suite.tgz --exclude='.git' --exclude='__pycache__' my-suite/ curl -X POST https://suites.mercator.cn/api/v1/publish \ -H "Authorization: Bearer $KEY" \ -F "file=@suite.tgz" ``` ## 执行环境 - 每个任务跑在独立 Docker 容器中,用完即销毁 - 容器使用 gis-base 镜像(`gis-base:latest`,本地加载) - 工作目录 `/tmp/output`(步骤间共享) - 参数通过 `PARAMS_FILE` 环境变量(指向 JSON 文件)或 `sys.argv[1]` JSON 传入