Toolsworx
镜像的公共Spring Boot后端 统一服务 节点堆栈:文档/媒体/音频/图像转换、货币/加密货币汇率馈送、与Firestore绑定的利率限制,以及与www.toolsworx.com使用的Spring AI MCP工具相同的工具。每个人都可以阅读该仓库;这里没有秘密。
______________________________________________________________________
许可证
该项目发布于 MIT许可证.
里面是什么
- 文档+媒体转换 通过
FileConversionService和UnifiedApiController./file/convert,/image/convert,/video/convert,/audio/filter,/filter,加/download//status合作伙伴重播基于旧队列的工作流。 - 上传速率受限 –控制器向前
x-api-key,公钥来自application.properties触发默认的3/24小时限制,以及Firestore的apiKeys集合解锁经过身份验证的客户端/代理。可选Cloudflare旋转栅门令牌(turnstileToken或cf-turnstile-response)根据请求进行验证。 - API费率 –
GET /rates/currency返回ExchangeRate API快照(base_code,time_last_update_unix,conversion_rates,rates[])虽然GET /rates/crypto暴露CoinGecko价格(gecko_prices,prices[]).定时提取器(可通过以下方式配置toolsworx.currency.refresh-ms和toolsworx.crypto.refresh-ms)刷新每个提要并通过WebSocket广播更新/ws/rates(/topic/rates/currency和/topic/rates/crypto).前端助手docs/api-client.ts,docs/currency_client.tsx,以及docs/crypto_client.tsx消费这种形状。 - MCP工具 –Spring AI通过以下方式注册文档/音频/视频/图像工具
McpToolsConfiguration并通过可流式传输的HTTP MCP端点为其提供服务(/mcp)因此代理可以转换文件,而不会达到REST上传限制。 - 可观测性 –Firestore日志记录,H2持久性
ConversionJob,并且计划的清理使作业可追溯和可重试。
配置
- 更新
src/main/resources/application.properties在部署之前。这里唯一暴露的钥匙是NEXT_PUBLIC_CONVERTER_API_KEY(由文档客户端使用)和可选toolsworx.api-keys/toolsworx.public-api-key覆盖。 toolsworx.currency.url和toolsworx.crypto.gecko.url指向ExchangeRate和CoinGecko API;只要这些值的JSON形状匹配,就可以将其替换为其他免费APICurrencyRateSnapshot和CryptoRateSnapshot.- Cloudflare旋转栅门机密(如果使用)通过以下方式配置
toolsworx.turnstile.secret.
跑步
mvn test
mvn spring-boot:run
# docker
docker build -t toolsworx-backend -f Dockerfile .
docker run --rm -p 8080:8080 toolsworx-backend
因为这种环境无法到达 repo.maven.apache.org 可靠地, mvn test 当前无法下载 com.google.errorprone:error_prone_annotations:2.18.0。一旦网络允许Maven访问该主机,请重新运行该命令。
端点
POST /file/convert–排队文档转换。POST /video/convert–队列通用媒体转码。POST /audio/filter–具有作业跟踪功能的音频/图像过滤器。/{kind}/status/{jobId}和/{kind}/download/{jobId}反映统一服务作业生命周期。GET /rates/currency和/rates/crypto返回已保存的速率快照。/ws/ratesWebSocket与/topic/rates/currency和/topic/rates/cryptotopics会发出最新快照。/mcp–用于文档/音频/视频/图像转换器的可流式MCP服务器。
致动器健康
随着 spring-boot-starter-actuator 使您现在可以公开 /actuator/health 加 /actuator/info.在本地启动应用程序后(mvn spring-boot:run 或 java -jar target/toolsworx-0.0.1-SNAPSHOT.jar):
curl http://localhost:8080/actuator/health
curl http://localhost:8080/actuator/infohealth 始终显示状态/详细信息(数据库、磁盘),因为 management.endpoint.health.show-details=always; info 报告通过Spring Boot定义的元数据 info.* 属性或构建数据。
测试
- 控制器/服务测试包括转换(
FileConversionServiceTest,AudioConversionServiceTest等)、图像滤波器控制器、MCP布线和新UnifiedApiController. mvn test已在本地执行,但仍无法解决上述Firebase依赖关系。没有手动跳过任何测试。
其他参考文献
docs/api-client.ts,docs/currency_client.tsx,以及docs/crypto_client.tsx显示UI如何使用/api路线。docs/rates.md列出了预期的ExchangeRate和CoinGecko有效载荷,与Java相匹配RatesController.
