CXForge管理工具
Adobe Experience Manager的现代可扩展管理工具平台,灵感来自ACS AEM Commons MCP工具。 CXForge (Content Experience Forge)是您大规模制作和管理AEM内容的工具包。
内置:
- 后端:Spring Boot 3.2+Java 21
- 前端:Lit Web组件+Adobe Spectrum
- 流媒体:用于实时进度的服务器发送事件(SSE)
特性
- 插件架构:易于添加新的管理工具
- 实时进度:SSE流媒体用于实时工作更新
- 现代用户界面:Adobe Spectrum设计系统
- 示范模式:无需AEM连接即可进行测试
- 安全:可配置的身份验证、CORS和安全标头
- Docker就绪:用于生产部署的非根容器
包含的工具
内容工具
- 内容健康检查 -扫描内容以查找问题:
- 缺少标题/描述 - 断开的引用 - 陈旧内容 - 缺少alt文本 - 未发布的更改
- 批量标签管理器 -按比例管理标签:
- 查找带有特定标签的页面 - 批量添加/删除标签 - 用另一个标签替换一个标签
资产工具
- 资产报告 -生成DAM报告:
- 按类型列出的资产库存 - 缺少元数据分析 - 大文件查找器 - 未使用资产检测
快速开始
启动后端(端口10004)
cd server
mvn spring-boot:run启动前端(端口5174)
cd client
npm install
npm run dev打开http://localhost:5174在您的浏览器中。
Docker Compose
# Start full stack
docker-compose --profile full up
# Backend only
docker-compose --profile backend up建筑
cxforge-admin-tools/
├── server/ # Spring Boot backend
│ └── src/main/java/io/cxforge/admintools/
│ ├── tool/ # Tool interface & implementations
│ │ ├── AdminTool.java # Base interface for all tools
│ │ ├── ContentHealthCheckTool.java
│ │ ├── BulkTagManagerTool.java
│ │ └── AssetReportTool.java
│ ├── service/
│ │ ├── ToolRegistry.java # Tool plugin registry
│ │ └── JobService.java # Job execution & streaming
│ ├── controller/
│ │ ├── ToolController.java # Tool discovery API
│ │ └── JobController.java # Job management API
│ ├── config/ # Configuration classes
│ │ ├── SecurityConfig.java # Auth & security headers
│ │ └── WebConfig.java # CORS configuration
│ └── model/ # Data models
│
└── client/ # Lit + Spectrum frontend
└── src/
├── components/
│ ├── admin-tools-app.ts # Main app shell
│ ├── tool-list.ts # Tool catalog
│ ├── tool-form.ts # Dynamic parameter form
│ ├── job-progress.ts # Real-time progress
│ ├── job-results.ts # Results table
│ └── job-history.ts # Recent jobs
└── types.ts # TypeScript interfaces
创建新工具
- 实施
AdminTool接口:
@Component
public class MyCustomTool implements AdminTool {
@Override
public ToolDefinition getDefinition() {
return ToolDefinition.builder()
.id("my-custom-tool")
.name("My Custom Tool")
.description("Does something useful")
.category("Content")
.parameters(List.of(
ToolParameter.builder()
.name("path")
.label("Content Path")
.type(ToolParameter.ParameterType.PATH)
.required(true)
.build()
))
.build();
}
@Override
public String validateParameters(Map params) {
// Return null if valid, error message otherwise
return null;
}
@Override
public void execute(Job job) {
// Your tool logic here
// Update job.addResult() and job.addLog() as you go
// Call jobService.emitUpdate(job) to stream progress
}
}该工具通过Spring的组件扫描自动注册。
API终点
| 端点 | 方法 | 描述 |
|---|---|---|
/api/tools | GET | 列出所有可用工具 |
/api/tools/{id} | GET | 获取工具定义 |
/api/jobs | POST | 创建并启动作业 |
/api/jobs | GET | 列出最近的作业 |
/api/jobs/{id} | GET | 获取作业状态 |
/api/jobs/{id}/stream | GET(SSE) | 流式传输作业更新 |
/api/jobs/{id}/cancel | POST | 取消正在运行的作业 |
配置
环境变量
复制 .env.example 到 .env 并配置:
cp .env.example .env关键配置选项:
| 变量 | 描述 | 默认值 |
|---|---|---|
SERVER_PORT | 后端服务器端口 | 10004 |
AEM_ENABLED | 启用AEM连接 | true |
AEM_AUTHOR_URL | AEM作者URL | http://localhost:4502 |
AEM_USERNAME | AEM用户名 | admin |
AEM_PASSWORD | AEM密码 | admin |
SECURITY_ENABLED | 启用身份验证 | false |
SECURITY_ADMIN_PASSWORD | 管理员密码(启用安全保护时) | admin |
CORS_ALLOWED_ORIGINS | 逗号分隔的允许来源 | http://localhost:5174,http://localhost:8081 |
LLM_PROVIDER | 人工智能提供者(胶原蛋白/开放性/人型) | ollama |
LOG_LEVEL | 应用程序日志级别 | INFO |
生产安全
对于生产部署,启用安全性:
export SECURITY_ENABLED=true
export SECURITY_ADMIN_PASSWORD=
export AEM_PASSWORD=
export CORS_ALLOWED_ORIGINS=https://your-domain.com启用安全功能时:
- HTTP基本认证
- HSTS(严格运输安全)
- 内容安全策略(CSP)
- X帧选项:DENY
- 引用来源策略
- 权限策略
API 文档
运行时,访问Swagger UI:
- http://localhost:10004/swagger-ui.html
- http://localhost:10004/v3/api-文档(OpenAPI规范)
健康与指标
弹簧启动执行器端点:
/actuator/health-健康检查/actuator/info-申请信息/actuator/metrics-指标/actuator/prometheus-普罗米修斯指标
与ACS AEM Commons MCP的比较
| 功能 | ACS MCP | CXForge |
|---|---|---|
| 在AEM内部运行 | 是 | 否(外部) |
| 实时进度 | 是 | 是(SSE) |
| 现代UI | 否 | 是(光谱) |
| 自定义工具 | 是(Java) | 是(Spring) |
| 无AEM时工作 | 否 | 是(演示模式) |
| 人工智能增强 | 否 | 计划中 |
| 安全标头 | 不适用 | 是 |
| 容器已准备好 | 否 | 是 |
未来改进
- \[\]AEM SDK集成用于实际操作
- \[\]人工智能建议(查找问题,建议修复)
- \[\]计划作业执行
- \[\]将结果导出为CSV/JSON
- \[\]多用户作业管理
- \[\]Webhook通知
- \[\]OAuth2/OIDC身份验证
- \[\]作业历史的数据库持久性
- \[\]速率限制
许可证
此项目根据Apache许可证2.0获得许可-请参阅 许可证 文件以获取详细信息。
安全
有关安全问题,请参阅 安全.md.
