当前位置: 首页 > news >正文

开源了我的第一个 Chrome 扩展:CNB Workspace Manager

🚀 开源了我的第一个 Chrome 扩展:CNB Workspace Manager

一个帮你管理 CNB 云原生开发环境的浏览器扩展,避免免费资源浪费,让每一分配额都用在刀刃上 💰

CNB Workspace Manager License TypeScript Chrome


📌 TL;DR

帮你管理 CNB 云原生开发环境,避免免费资源浪费,再也不用担心配额用超了 💰

项目地址: https://cnb.cool/O.o/kill-workspace ⭐


💡 为什么做这个?

真实的痛点场景

CNB 平台给每个开发者提供了免费的云原生开发环境配额,但是...

作为一个经常在多个项目间切换的开发者,我总是:

  • 忘记关闭测试环境 - 周五下班关电脑,周一来发现环境跑了整个周末
  • 不记得有几个环境在运行 - 项目A、项目B、临时测试...到底开了几个?
  • 手动去平台一个个找太麻烦 - 登录平台 → 找到项目 → 找到环境 → 点停止,重复N次
  • 配额不知不觉就用完了 - 想开新环境时发现额度已经耗尽 😭

导火索

某个周一早上,打开 CNB平台 查看用量统计:💥 您的免费配额已用尽
这不是第一次了!😭

于是花了一个周末,撸了这个小工具 🛠️


✨ 核心功能

1️⃣ 一眼看清所有运行中的环境

特点:

  • 📊 清晰展示仓库路径、分支名称
  • ⏱️ 实时统计运行时长(精确到分钟)
  • 🎨 现代化的卡片式设计

2️⃣ 一键停止,告别浪费

点一下停止按钮 → 确认 → 环境关闭,就是这么简单 👆

// 核心代码就这么简单
async function stopWorkspace(workspace) {await fetch('https://api.cnb.cool/workspace/stop', {method: 'POST',body: JSON.stringify({ sn: workspace.sn })});// 刷新列表await loadWorkspaces();
}

3️⃣ 自动刷新,实时监控

🔄 每 30 秒自动更新状态
📍 无需手动刷新,随时掌控资源使用情况
💡 可自定义刷新间隔
🔒 安全性?我很在意
作为开发者,我特别注重安全,Token 绝不明文存储!

🛡️ 多层安全防护

  1. AES-GCM 256位加密存储
class TokenEncryption {// 使用 Web Crypto APIstatic async encrypt(token: string): Promise<EncryptedData> {// 生成随机盐值和 IVconst salt = crypto.getRandomValues(new Uint8Array(16));const iv = crypto.getRandomValues(new Uint8Array(12));// 基于扩展ID派生密钥const key = await this.deriveKey(salt);// AES-GCM 加密const encrypted = await crypto.subtle.encrypt({ name: 'AES-GCM', iv },key,new TextEncoder().encode(token));return { encrypted, iv, salt };}
}
  1. PBKDF2 密钥派生
    🔑 基于扩展 ID + 随机盐值
    🔄 10万次迭代增强安全性
    🎲 每次加密使用不同的随机值
  2. CSP 内容安全策略
{"content_security_policy": {"extension_pages": "script-src 'self'; object-src 'self';"}
}

🚫 禁止内联脚本和 eval()
🚫 只允许加载扩展自身的脚本
🚫 防止 XSS 攻击
4. 输入验证 + 白名单

function validateToken(token: string) {// 长度限制if (token.length < 10 || token.length > 500) {return false;}// 字符白名单:只允许 a-zA-Z0-9-_.if (!/^[a-zA-Z0-9\-_\.]+$/.test(token)) {return false;}return true;
}

🛠️ 技术栈
TypeScript 5.2 类型安全,减少bug
Webpack 5 模块化打包
Web Crypto API 浏览器原生加密,性能好
Chrome Extension V3 最新标准,更安全
CNB Open API 官方开放接口

🚀 使用指南

第一步:获取 CNB Token
访问 CNB 平台:https://cnb.cool/profile/token
点击 生成 Token:点击 “ 添加访问令牌”

复制 Token
第二步:配置扩展
点击浏览器工具栏的 扩展图标
在弹出的输入框中 粘贴 Token
点击 保存按钮
✅ Token 会自动加密存储,安全无忧

第三步:开始管理
扩展会自动加载你的运行中的 Workspace:

Clipboard_Screenshot_1764572419

查看详情:鼠标悬停查看完整信息
停止环境:点击停止按钮,确认即可
刷新列表:点击右上角刷新图标
修改 Token:点击右上角设置图标

只保留正在使用的环境
让每一分配额都用在刀刃上

如果你也用 CNB 开发,试试这个工具?

✅ 觉得有用?→ 给个 Star ⭐
✅ 有建议?→ 提个 Issue 💡
✅ 想贡献?→ 发个 PR 🔧

特别感谢

CNB 平台提供的免费云原生开发环境
CNB 平台提供的开放 API
所有 Star 和 Fork 项目的朋友们
提出宝贵建议的用户们

开源不易,如果觉得有用,请给个 Star ⭐

🔗 相关链接
📦 项目仓库: https://cnb.cool/O.o/kill-workspace
🐛 问题反馈: https://cnb.cool/O.o/kill-workspace/-/issues
🌐 CNB 平台: https://cnb.cool
📖 CNB 文档: https://docs.cnb.cool/zh/

http://www.jsqmd.com/news/57100/

相关文章:

  • shopify物流、客服配置
  • TDengine 字符串函数 CONCAT 用户手册 - 详解
  • 护手霜挑选必备指南:2025十大防干裂品牌深度剖析!持久保湿滋润呵护双手
  • 部署网站,一替换dll,网站就报错
  • 如何在Stimulsoft图表中创建自动系列(Auto Series)——实战示例解析
  • Spring MVC 响应处理:页面、素材与状态配备详解
  • 深入解析:HTML炫酷烟花⑨
  • 专为不同肤质定制:2025年油皮、干皮、敏感肌最爱的氨基酸洗面奶榜单
  • 2025年度裁断机厂商排名,裁断机厂家哪家售后好
  • 2025年12月昆明自媒体/短视频运营公司前五榜单推荐
  • 轻质碳酸钙生产厂哪家专业?哪家售后服务优?求推荐
  • xxl-job打包出现Could not determine gpg version异常
  • 冰蓝科技正式发布全新纯前端文档编辑产品 —— Spire.WordJS
  • 第一天敏捷冲刺博客
  • 斐讯盒子T1_S912B芯片_安卓7.1.2或安卓9.0_线刷固件包 - 指南
  • 2025工业级柠檬酸生产厂商TOP5权威推荐:工业柠檬酸钠批
  • 2025年北京天津河北上海江苏印刷精品定制公司推荐:专业的印
  • 深圳市退社保费,需要上传文件的模板
  • 2025成都网络推广公司服务能力大比拼,抖音代运营/GEO优化/网络推广公司推荐
  • SDIO协议
  • 哪个品牌的袋式过滤器好?行业内的几个可靠选择
  • top flow
  • 记前端项目定位实现过程
  • 裁断机厂家选哪家好?裁断机服务商价格哪个合理?
  • 视频汇聚平台EasyCVR助力打造太阳能供电远程视频监控系统
  • 2025年中国自助KTV系统解决方案公司排名:鱼乐圈ktv研
  • 相册链接
  • Elasticsearch 7.0 介绍与配置详解 - 指南
  • 2025年郑州代理招生平台推荐:翰学网让郑州代理招生网站、郑州代理招生平台学员求学满意
  • 智能农业实践:视频融合平台EasyCVR的农业大棚可视化监控方案