Commit Graph
16 Commits
Author SHA1 Message Date
naibaandcloudcode e8dabf5bc6 feat(auth): add PAT auth, scoped REST/MCP access, CSRF, and tenant isolation
Introduce Personal Access Tokens (nzp_*) as a stateless auth path alongside
JWT, gated per-endpoint by a scope middleware (nezha:{resource}:{verb}) with
fail-closed empty-scope defaults and a server-id whitelist. Self-management
endpoints (profile, api-tokens, oauth2 bind, refresh-token) explicitly reject
PATs to block privilege-escalation chains. A revoke registry tears down active
long-lived connections (terminal, fm, ws, transfer, mcp) the moment a PAT is
deleted, with a tombstone closing the revoke->register race.

Add an MCP endpoint that proxies tool calls (exec, fs read/write/delete,
transfer) to agents over gRPC, guarded by origin/DNS-rebinding checks, a
per-token rate limiter, audit logging, and a kill switch. Serialize all
sends through the IOStream wrapper to honour grpc-go's concurrency contract.

Add CSRF double-submit protection on unsafe cookie-authenticated methods,
exempting authenticated PAT requests by context identity (not a forgeable
Authorization header). Apply visibility/whitelist filtering consistently
across list, get-by-id, and mutate paths to enforce tenant isolation.

Migrate legacy mcp:* scopes: rewrite read/exec to nezha:* equivalents and
drop dangerous write/delete/wildcard grants.

Co-authored-by: cloudcode <cloudcode@users.noreply.github.com>
2026-05-30 15:56:44 +00:00
UUBulb 043d6c4097 feat: update to go1.24 & support listening https (#1002)
* feat: support listening https

* refactor

* modernize

* support snake case in config

* more precise control of config fields

* update goreleaser config

* remove kubeyaml

* fix: expose agent_secret

* chore
2025-02-28 22:02:54 +08:00
naiba a7e4fe0909 rename repo 2024-11-28 19:38:54 +08:00
UUBulb b80e251f6a remove id field in every form struct, fix cron & ddns db (#11) 2024-11-19 23:34:56 +08:00
UUBulb 5c1599c88c fix struct tags (#7) 2024-11-16 20:57:03 +08:00
UUBulb 8bfe70d519 add cron, nat api & refactor alert rule (#459)
* add cron api & refactor alert rule

* add nat api

* fix swagger

* remove unnecessary steps
2024-10-26 23:57:47 +08:00
UUBulb 28b606ef7b implement notification group (#450)
* implement notification group

* some fixes

* fix sql

* add listNotification

* retrieve notification from map

* create notification_group_notification if non-exist

* NotificationIDToGroup -> NotificationIDToGroups

* clean
2024-10-23 21:55:12 +08:00
naiba df2e8aac06 rename CronCoverSelf to CronCoverAlertTrigger 2022-09-14 22:14:47 +08:00
Akkia 048dd35129 添加触发任务类型 2022-09-13 06:14:47 +08:00
Akkia 2ebcc13ab8 WIP: 通知方式分组 支持将不同的报警|监控|计划任务的通知 发送到指定的通知分组 2022-04-14 21:06:42 +08:00
Akkia 9776cf6182 添加代码注释+修正一个typo 2022-04-11 22:51:02 +08:00
Akkia a282383b0d fix some typo 2022-04-10 20:28:22 +08:00
naiba a90c0400d9 ️ 使用 json-iterator 替换 encoding/json 进行一些序列化/反序列化操作 2022-03-18 23:13:22 +08:00
naiba 78793cba3f 🐛 修改计划任务并未取消旧任务 2021-09-30 11:59:57 +08:00
naiba a9c7281af8 优化忽略规则配置和 Agent 获取 IP 2021-06-21 21:30:42 +08:00
naiba 29cee9865e 🔊 v0.3.0 计划任务(定期备份等场景) 2021-01-19 09:59:04 +08:00