@cardstack/hub

中文文档
0.28.7发布于 2021/12/24MIT近 30 天下载 3027

卡斯特克技术堆栈的股票API服务器.

中文使用文档
文档目录21 节
  1. 建筑
  2. 配置
  3. 设置 Discord
  4. 开始
  5. 运行中枢
  6. 数据库迁移
  7. 应用程序控制台
  8. 进行 DB 查询( 已安装的调用模块)
  9. 调用服务( 调用应用程序模块)
  10. 在 AWS 上连接数据库中 {} 生产数据库
  11. 设置 AWS 会话管理器 ssh 配置
  12. 提供 APIs
  13. 获取/api/汇率
  14. 获得/api/预付卡片
  15. 获取/api/预付卡-彩色方案
  16. POST/API/预付卡-定制
  17. POST / api/ 商家信息
  18. 获取/api/ merchant- infos/ validate- slug/: slug 获取/ api/ mer…
  19. " 中心 " 倡议
  20. 卡片编译器
  21. 捐款

@ cardstack/ hub (中文(简体) )

卡斯特克枢纽是卡斯特克项目的API服务器. 更多信息,请参见 整个项目。 。 。 .

建筑

枢纽由API端点和邮递数据库组成.

该应用程序使用基于 Postgresql 的背景任务队列 图表/工人

配置

以下列出枢纽接受的最常见环境变量列表:

  • SERVER_SECRET (需要) - 为您的机器生成一个,运行 node --eval="console.log(crypto.randomBytes(32).toString('base64'))"
  • FIXER_API_KEY (需为 /api/exchange-rates) - 货币汇率的API键,我们使用 https://fixer.io/ 页面存档备份,存于互联网档案馆
  • EXCHANGE_RATES_ALLOWED_DOMAINS - 请求的域 /api/exchange-rates 允许
  • HUB_AWS_ACCESS_KEY_ID
  • HUB_AWS_SECRET_ACCESS_KEY
  • HUB_AWS_REGION
  • AWS_PROFILE - 如果没有HUB自动取款机* 变量被定义,不会将证书或区域传递给aws-sdk. 这将让 aws- sdk 的默认行为生效, 包括使用 AWS PROFILE env var 如果设置它
  • DATABASE_URL - 开发中默认为postgres://postgres:postgres@localhost:5432/hub development
  • LOG_LEVELS - 默认 *=info

搜索单重播 process.env 并检查配置目录以查看引用的变量.

要使用变量,请创建名为的文件 .env ,并输入您想要使用的变量.

例如:

SERVER_SECRET=7TmgY1xFo/WrYTnAFSvAemZtFB8wQVMd8IkoeQKBboE=
AWS_PROFILE=cardstack

设置 Discord

这个单回波中的一些软件包支持一个不相通的bot的操作,它使用枢机的DI系统. 我们利用 科德杰斯语Name 我们的单位测试。 CordeJS使用不相容的bot在不相容下运行来测试bot的功能,方法是模仿不相容的用户,向被测试的bot发送命令. 为了运行cordejs测试,您需要设置一个不相容服务器,并安装拥有全部权限的cordebot以及cardbot进入不相容服务器.

设置接线人(和接线人)的指示在这里: https://cordejs.org/docs/createddiscordbot (中文(简体) )。在这些指令中,您需要设置 2 bots (指令概述了如何设置单个 bot) 。 一个你设置的机器人将是"纸牌",另一个你设置的机器人是"绳子"(用来测试纸牌).

在编写本报告时,纸牌机器人需要下列OAuth范围:

一旦布置出卡片机器人和接线机器人bots,您就可以配置环境变量来进行机器人测试。 具体而言:

  • CORDE_BOT_ID: 绳子机器人的机器人ID
  • CORDE_BOT_TOKEN: 接线机器人的机器人标志
  • CARDBOT_ID: 纸牌机器人的机器人ID
  • CARDBOT_TOKEN: 纸牌机器人的机器人标志
  • CARDBOT_ALLOWED_GUILDS:一个逗号分隔列表,列出允许卡片机器人在其中通信的不和服务器ID. 这应该是您添加的纸牌机器人的服务器 .
  • CARDBOT_ALLOWED_CHANNELS:一个逗号分隔的频道ID列表,卡片机器人被允许进行通信.

(注:方便获得服务器和频道ID的启用) User Settings -> Advanced -> Enable Developer Mode 在迪斯科尔。 这将在服务器和频道的设置面板中显示一个"Copy ID"项目以获取这些ID. )

开始

你需要通过 yarn build,或者开始观看现场重建 yarn rebuild。 。 。 .

以下命令将在您本地运行的 postgres 服务器上创建中心开发数据库

    createdb hub_development
    yarn db:migrate up
    dist/hub.js db seed
    dist/hub.js db dump
    NODE_ENV=test dist/hub.js db init

运行中枢

# Starts the server on port 3000
dist/hub.js server

# Starts the worker process
dist/hub.js worker

# Starts the discord bot
dist/hub.js bot

# If you want to run both in the same terminal you can run
yarn start

数据库迁移

# Run available migrations
yarn db:migrate up

#To reverse the last migration:
yarn db:migrate down

#To redo the last migration (i.e. down + up):
yarn db:migrate redo

## Creating database migrations
yarn db:migrate create <migration-name>`

关于如何创建移徙脚本的文件,可查阅https://salsita.github.io/node-pg-migrate/#/migrates

在您完成运行新的 DB 迁移脚本后, 在 config/structure.sql 使用 :

dist/hub.js db dump

应用程序控制台

要在其上下文中测试,调试和调用应用程序的孤立部分.

yarn console 启动应用程序控制台.

实例:

进行 DB 查询( 已安装的调用模块)

Hub > const { Client } = require('pg');
Hub > const config = require('config');
Hub > const client = new Client(config.db.url);
Hub > await client.connect();
Hub > await client.query('SELECT * FROM merchant_infos');

调用服务( 调用应用程序模块)

Hub > const workerClient = await container.lookup('worker-client');
Hub > await workerClient.addJob('persist-off-chain-merchant-info', { id: 1 });

在 AWS 上连接数据库中 {} 生产数据库

设置 AWS 会话管理器 ssh 配置

在您的 ~/.ssh/config 文件 :

# SSH over Session Manager
host i-* mi-*
    ProxyCommand sh -c "aws ssm start-session --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"

查找隧道指令和数据库密码 :

cd [PROJECTS]/cardstack/infra/configs/hub/[staging|production]
AWS_PROFILE=cardstack terraform output | grep tunnel_to_database
AWS_PROFILE=cardstack terraform output | grep postgres_password

运行命令, 打开一个 postgres 客户端, 并连接到本地主机, 端口 55432 , 并使用用户名 Cardtack, 密码 .

提供 APIs

API 符合 JSON API 规格。 。 。 .

获取/api/汇率

获得/api/预付卡片

获取/api/预付卡-彩色方案

POST/API/预付卡-定制

POST / api/ 商家信息

获取/api/ merchant- infos/ validate- slug/: slug 获取/ api/ merchant- infos

" 中心 " 倡议

可在中心软件包内引用中心语言

dist/hub.js

QQ 提示: 添加 export PATH="./bin:$PATH" 给您的 .zshenv 或者说 .bash_profile 应援引 hub 直接(无 bin/(中文(简体) )

支持 CLI 的文件在 cli/ 目录。 你可以自己加一个 根据这些指示全数 yargs api 密码 此处可见。 。 。 .

卡片编译器

所有编译器功能目前都隐藏在COMPILER特性旗后. 所以用卡片编译和相关的路线开始服务器,使用那面旗.

COMPILER=true dist/hub.js server

捐款

注意此软件包是用 TypeScript 写的, 所以请确定运行类型Script 工作时编译器 . 见 整个项目 用于了解当地运行枢纽及其测试的信息.

版本与发布记录

@cardstack/hub 共发布 429 个版本,首次发布于 2017/03/29;过去 12 个月发布了 0 个版本。

版本发布日期距今
0.28.7latest2021/12/244 年前
0.28.22021/12/174 年前
0.28.12021/12/164 年前
0.28.02021/12/164 年前
0.27.442021/12/154 年前
0.27.432021/12/154 年前

其他发布通道:alpha → 0.2.2-alpha.0,container-alpha → 0.2.11-container-alpha.3,dotbc → 0.2.12-dotbc.0。

关于 @cardstack/hub 的常见问题

@cardstack/hub 是什么?

卡斯特克技术堆栈的股票API服务器.

如何安装 @cardstack/hub?

在项目目录运行 npm install @cardstack/hub,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 cardstack-hub,可以用 npx cardstack-hub 直接运行。

@cardstack/hub 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/cardstack__hub 是否存在。

@cardstack/hub 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js ^14.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@cardstack/hub 可以商用吗?

@cardstack/hub 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@cardstack/hub 的下载量有多少?

根据 npm 官方下载统计,@cardstack/hub 在 2026/10/09 – 2026/11/07 这 30 天内被下载 3,027 次,日均约 101 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@cardstack/hub 还在维护吗?

最新版本 0.28.7 发布于 2021/12/24(4 年前);至今共发布 429 个版本,其中过去 12 个月发布了 0 个;首次发布于 2017/03/29。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。