SuperAPI AI 工具集

saas-seeder

编程与开发

查看项目

更新于 10-16 04:07

技能介绍

用途

saas-seeder 用于从 SaaS Seeder 模板引导新的 SaaS 项目。根据资料,其核心任务包括:设置数据库、配置环境、创建超级管理员用户,并验证三层面板结构。它适用于初始化一个新的多租户 SaaS 项目时使用。

适用与不适用条件

适用场景:当用户说“Using the seeder-script skill, prepare this repository for [SaaS name]”“Bootstrap a new SaaS from this template”“Initialize the SaaS Seeder Template”“Setup database for new SaaS project”“Start a new project from the template”等情况时使用。

不适用场景:任务与 saas-seeder 无关,或由更专门的配套技能处理更合适时;请求只需简单回答、且本技能的约束或参考资料无实质帮助时。

三层面板结构(核心概念)

  • /public/(根)— 加盟商管理面板(主要工作区),单一加盟管理,用户类型:owner、staff;文件:dashboard.php、skeleton.php
  • /public/adminpanel/ — 超级管理员面板,系统级管理,多加盟监督,用户类型:super_admin
  • /public/memberpanel/ — 终端用户门户,自助服务,用户类型:member、student、customer、patient

关键原则:/public/ 根目录不是重定向路由器,而是加盟商管理工作区。

使用方式与标准工作流

快速引导步骤包括:环境设置(询问数据库凭据、Cookie 域、加密密钥,创建/更新 .env 文件)、安装依赖(composer install)、安装 PHP 开发工具、数据库设置(.\setup-database.ps1)、修复排序规则(.\fix-database.ps1,创建 franchises 表)、创建超级管理员(访问 http://localhost:8000/super-user-dev.php)、验证设置(在 http://localhost:8000/sign-in.php 登录)、项目定制(更新 src/config/session.php 中的 SESSION_PREFIX、定制用户类型枚举、应用项目数据库架构、更新品牌、创建项目专用 AGENTS.md)。

PHP 工具安装示例命令: composer show | grep -E "(phpstan|phpunit|pest|php-cs-fixer)" composer require --dev phpstan/phpstan composer require --dev friendsofphp/php-cs-fixer composer require --dev pestphp/pest --with-all-dependencies

质量命令:composer cs-fix(PSR-12 格式化)、composer stan(静态分析)、composer test(运行测试)、composer quality(全部检查)。

开发者需先提供的内容

  1. 需求与设计规格,放置于 docs/project-requirements/,包含 requirements.md、business-rules.md、user-types.md、workflows.md、ui-mockups/(可选)。
  2. 数据库架构文件,放置于 database/schema/,包含 core-schema.sql、seed-data.sql(可选)、schema-diagram.png(可选)。架构要求:所有加盟范围的表必须有 franchise_id 列;使用 utf8mb4_unicode_ci 排序规则;包含适当的索引和外键。

安全与数据库标准

涉及网页、API、认证、数据访问或文件处理的 seeder 工作,必须加载并应用 Vibe Security Skill,其检查清单为强制要求。所有数据库架构设置、种子与迁移必须遵循 mysql-best-practices 技能模式,包括字符集、索引、外键和存储过程。

密码哈希使用 Argon2ID(非 bcrypt):算法为 Argon2ID + salt(32 字符) + pepper(64+ 字符);哈希为 salt + Argon2ID(HMAC-SHA256(password, pepper) + salt)。重要:必须使用 super-user-dev.php 创建管理员用户,而非迁移默认值。

会话与权限规则

所有会话变量使用前缀:define('SESSION_PREFIX', 'saas_app_'); 并使用辅助函数 setSession()、getSession()、hasSession()。每个 SaaS 需定制前缀,如 school_、restaurant_、clinic_。

用户类型与加盟要求:super_admin(平台运营者,franchise_id 可为 NULL);owner(加盟所有者,franchise_id 必需);staff(加盟员工,franchise_id 必需);自定义类型(终端用户,franchise_id 必需)。

加盟数据必须始终按 franchise_id 过滤。权限代码使用大写下划线格式,格式为 RESOURCE_ACTION,例如 INVOICE_CREATE、STUDENT_DELETE、REPORT_VIEW。

部署环境

所有 SaaS 项目部署于三种环境:开发环境(Windows 11 WAMP,MySQL 8.x,C:\wamp64\www{project}\);暂存环境(Ubuntu VPS,MySQL 8.x,/var/www/html/{project}/);生产环境(Debian VPS,MySQL 8.x,/var/www/html/{project}/)。跨平台规则:使用 utf8mb4_unicode_ci 排序规则;文件/目录大小写需精确匹配(Linux 区分大小写);PHP 路径使用正斜杠;生产迁移放在 database/migrations-production/(非破坏性、幂等)。

生产前安全检查清单

  • 移除 super-user-dev.php 或限制访问
  • 将 SESSION_PREFIX 从 saas_app_ 更改
  • 设置强 PASSWORD_PEPPER(64+ 字符)
  • 设置强 COOKIE_ENCRYPTION_KEY(32+ 字符)
  • 设置 APP_ENV=production
  • 启用 HTTPS(会话 Cookie 需要)
  • 审查所有查询的 franchise_id 过滤
  • 为 .env 设置适当文件权限(600)

限制与说明

资料未提供该技能的具体收费、价格信息、可量化的效果数据,以及除上述模板结构外的其他功能细节;这些内容暂未提供。资料中提及的可选辅助插件在某些环境中可能有帮助,但不应视为本技能的必需项。