1 · 验证账号并创建租户
用邮件登录链接或 Google 验证邮箱,选择租户 ID 后进入控制台。管理员不能代建没有账号归属的租户。
一套统一的资源通道,多种协议接入。完成账号验证、注册资源、按手册上报,数据即刻出现在控制台和地球视图上。
用邮件登录链接或 Google 验证邮箱,选择租户 ID 后进入控制台。管理员不能代建没有账号归属的租户。
在控制台创建资源,取得资源密钥和填好参数的接入示例;程序密钥也在控制台按需创建。
选 HTTP、MQTT、WebSocket 或 WebTransport 任一种上报。先落盘后确认,eventId 幂等,断线可按游标重放。
| 协议 | 端点 | 状态 |
|---|---|---|
| HTTP/1.1 · HTTP/2 | POST /v1/telemetry |
已启用 |
| MQTT 3.1.1 / 5.0 over TLS | mqtts://mqtt.earthmqtt.space:8883 |
已启用 |
| MQTT 3.1.1 / 5.0(明文) | mqtt://mqtt.earthmqtt.space:1883 |
已启用 |
| MQTT over WebSocket | wss://mqtt.earthmqtt.space/mqtt |
已启用 |
| MQTT over WebSocket(明文) | ws://mqtt.earthmqtt.space/mqtt |
已启用 |
| WebSocket | /v1/ws |
已启用 |
| HTTP/3 WebTransport | — |
未启用 |
| MCP Streamable HTTP | /mcp |
已启用 |
打开 API 文档;机器可读定义可下载为 OpenAPI JSON;健康检查见 /healthz。
| 资源 | 标签 | 状态 | 最近上报 | 最新遥测 |
|---|
还没有资源。用上面的表单注册第一个。
通过 /v1/ws 订阅本租户的所有资源和客户端,看到的是消息本身——
「审计」记的是谁做了什么(注册、发密钥、发布的主题和序号),不含消息体。
打开这一页就会自动订阅;浏览器无法在升级请求上设置 Authorization,所以用一次性票据(POST /v1/ws-tickets)换取连接。
未订阅。
审计记的是谁做了什么——动作、对象、执行者,以及发布消息时的主题和序号。
消息体不在这里:这是访问控制记录,按 AUDIT_RETENTION_DAYS 长期保留,
把客户数据混进来会让「谁能读审计」变成一个没法回答的问题。
但每条 message.publish 都记着频道和序号,足以精确定位那条消息——
勾上「显示消息内容」就按这两个字段去事件流里把它取回来。
| 时间 | 操作 | 对象 | 执行者 | 详情 |
|---|
连接时用 用户名@空间 进入,例如 -u 'acme@ops'。资源还需要在注册时授予该空间。
| 空间 | 名称 | MQTT username |
|---|
组是跨租户的共享域,它有自己独立的空间——和上面你自己域里的空间不是一回事。要用 用户名@组:空间 连接,得先在这个组里建出那个空间。
控制台用你的账号会话,不需要任何密钥——密钥是发给程序和资源的,在「凭据」页。 用 Google 或邮件链接登录的账号也可以在这里设一个密码,以后多一种登录方式。
控制台本身不需要凭据,你已经登录了。这一页是发给别人用的:给一个程序发一把密钥, 或者给一批资源发一组——每个一把自己的。 两种都是同一件事,范围先划好再发:发出去的东西只能做你勾的那些。 这一页整个是可选的。路由层不认识资源——一把租户密钥就能收发,不建批次也完全能用; 只是把同一把密钥装进一万台,撬开一台就等于全部,而且吊销会让整队停机。
每把密钥都有自己的名字和范围,互不影响——换钥就是「新建一把、部署、删掉旧的」,中间没有断档。
范围按最小必要给:只读数据的看板不需要 manage,不进组的密钥别勾组。
| 名字 | 空间 | 组 | 能力 | 创建时间 |
|---|
还没有密钥。控制台本身不需要,程序调用才需要。
批次是一台发证机:资源拿它换一把只属于自己的密钥,撬开一台就只是一台。 批次上的空间就是它发出去的每个资源的空间。
| 批次 | 模式 | 空间 | 状态 | 已发 | 有效期 |
|---|
资源已经连在你自己的 MQTT broker 上,不想为了用地球视图和审计而把上万台重新指向这里——那就不用动资源。 填一个地址,平台主动连过去订阅你指定的主题,把消息收进来。 资源是从消息里认出来的:可以是主题里的某一级,也可以是 payload 里的某个字段—— 这里不需要、也不会用到我们平台的一机一密凭据。没见过的资源第一次上报时自动登记。
| 名称 | 地址 | 主题 | 资源 ID | 状态 |
|---|
还没有接入。资源直接连本平台时不需要这一页。
路由层不认识资源,所以这里靠模型看一眼你发的数据是什么。判决只是标签——不参与鉴权,
垃圾 也不会丢数据;按「流」判决而不是按「消息」,同一个结构只花一次钱。
判错了直接在这里改,改过的不会再被判。
| 空间 / 发布者 | 主题 | 判决 | 资源 ID | 分组 | 依据 |
|---|
组建立之后还要在该组里创建空间,成员才有地方发消息。
| 组 | 名称 | 成员 |
|---|
管理员密钥对所有租户都有效,所以「看哪个租户」是登录之后的选择,不是密钥的一部分—— 在下面的列表里点「切换」。资源、空间、发证和识别都是按租户划分的,选定之前没有内容可看。
管理员不能创建没有账号归属的租户。新用户从注册页通过邮件链接或 Google 验证邮箱,然后自己选择租户 ID;管理员在这里只查看、切换和治理已有租户。
| 租户 | 账号邮箱 | 名称 | 创建时间 | 更新时间 |
|---|