@rei-standard/amsg-server 1.1.0 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  `@rei-standard/amsg-server` 是 ReiStandard 主动消息标准的服务端 SDK 包。
4
4
 
5
+ ## 文档导航
6
+
7
+ - [SDK 总览](../README.md)
8
+ - [主 README](../../../README.md)
9
+ - [API 技术规范](../../../standards/active-messaging-api.md)
10
+
5
11
  ## 安装
6
12
 
7
13
  ```bash
@@ -23,9 +29,7 @@ const rei = await createReiServer({
23
29
  driver: 'neon',
24
30
  connectionString: process.env.DATABASE_URL
25
31
  },
26
- encryptionKey: process.env.ENCRYPTION_KEY,
27
32
  cronSecret: process.env.CRON_SECRET,
28
- initSecret: process.env.INIT_SECRET,
29
33
  vapid: {
30
34
  email: process.env.VAPID_EMAIL,
31
35
  publicKey: process.env.NEXT_PUBLIC_VAPID_PUBLIC_KEY,
@@ -37,14 +41,21 @@ const rei = await createReiServer({
37
41
  导出的标准 handler:
38
42
 
39
43
  - `rei.handlers.initDatabase`
40
- - `rei.handlers.getMasterKey`
44
+ - `rei.handlers.initMasterKey`
45
+ - `rei.handlers.getUserKey`
41
46
  - `rei.handlers.scheduleMessage`
42
47
  - `rei.handlers.sendNotifications`
43
48
  - `rei.handlers.updateMessage`
44
49
  - `rei.handlers.cancelMessage`
45
50
  - `rei.handlers.messages`
46
51
 
52
+ 推荐初始化顺序:
53
+
54
+ 1. 调用 `initDatabase.GET`(幂等创建表)
55
+ 2. 调用 `initMasterKey.POST`(一次性初始化系统密钥)
56
+ 3. 客户端携带 UUID v4 `X-User-Id` 调用 `getUserKey.GET`
57
+
47
58
  ## 相关包
48
59
 
49
- - 浏览器 SDK:`@rei-standard/amsg-client`
50
- - Service Worker SDK:`@rei-standard/amsg-sw`
60
+ - 浏览器 SDK:[`@rei-standard/amsg-client`](../client/README.md)
61
+ - Service Worker SDK:[`@rei-standard/amsg-sw`](../sw/README.md)
@@ -13,6 +13,14 @@ var TABLE_SQL = `
13
13
  updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
14
14
  )
15
15
  `;
16
+ var SYSTEM_CONFIG_SQL = `
17
+ CREATE TABLE IF NOT EXISTS system_config (
18
+ key TEXT PRIMARY KEY,
19
+ value TEXT NOT NULL,
20
+ created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
21
+ updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
22
+ )
23
+ `;
16
24
  var INDEXES = [
17
25
  {
18
26
  name: "idx_pending_tasks_optimized",
@@ -56,6 +64,12 @@ var VERIFY_TABLE_SQL = `
56
64
  WHERE table_schema = 'public'
57
65
  AND table_name = 'scheduled_messages'
58
66
  `;
67
+ var VERIFY_SYSTEM_CONFIG_SQL = `
68
+ SELECT table_name
69
+ FROM information_schema.tables
70
+ WHERE table_schema = 'public'
71
+ AND table_name = 'system_config'
72
+ `;
59
73
  var COLUMNS_SQL = `
60
74
  SELECT column_name, data_type, is_nullable
61
75
  FROM information_schema.columns
@@ -63,6 +77,13 @@ var COLUMNS_SQL = `
63
77
  AND table_name = 'scheduled_messages'
64
78
  ORDER BY ordinal_position
65
79
  `;
80
+ var SYSTEM_CONFIG_COLUMNS_SQL = `
81
+ SELECT column_name, data_type, is_nullable
82
+ FROM information_schema.columns
83
+ WHERE table_schema = 'public'
84
+ AND table_name = 'system_config'
85
+ ORDER BY ordinal_position
86
+ `;
66
87
  var REQUIRED_COLUMNS = [
67
88
  "id",
68
89
  "user_id",
@@ -80,4 +101,7 @@ var REQUIRED_COLUMNS = [
80
101
 
81
102
 
82
103
 
83
- exports.TABLE_SQL = TABLE_SQL; exports.INDEXES = INDEXES; exports.VERIFY_TABLE_SQL = VERIFY_TABLE_SQL; exports.COLUMNS_SQL = COLUMNS_SQL; exports.REQUIRED_COLUMNS = REQUIRED_COLUMNS;
104
+
105
+
106
+
107
+ exports.TABLE_SQL = TABLE_SQL; exports.SYSTEM_CONFIG_SQL = SYSTEM_CONFIG_SQL; exports.INDEXES = INDEXES; exports.VERIFY_TABLE_SQL = VERIFY_TABLE_SQL; exports.VERIFY_SYSTEM_CONFIG_SQL = VERIFY_SYSTEM_CONFIG_SQL; exports.COLUMNS_SQL = COLUMNS_SQL; exports.SYSTEM_CONFIG_COLUMNS_SQL = SYSTEM_CONFIG_COLUMNS_SQL; exports.REQUIRED_COLUMNS = REQUIRED_COLUMNS;
@@ -13,6 +13,14 @@ var TABLE_SQL = `
13
13
  updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
14
14
  )
15
15
  `;
16
+ var SYSTEM_CONFIG_SQL = `
17
+ CREATE TABLE IF NOT EXISTS system_config (
18
+ key TEXT PRIMARY KEY,
19
+ value TEXT NOT NULL,
20
+ created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
21
+ updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
22
+ )
23
+ `;
16
24
  var INDEXES = [
17
25
  {
18
26
  name: "idx_pending_tasks_optimized",
@@ -56,6 +64,12 @@ var VERIFY_TABLE_SQL = `
56
64
  WHERE table_schema = 'public'
57
65
  AND table_name = 'scheduled_messages'
58
66
  `;
67
+ var VERIFY_SYSTEM_CONFIG_SQL = `
68
+ SELECT table_name
69
+ FROM information_schema.tables
70
+ WHERE table_schema = 'public'
71
+ AND table_name = 'system_config'
72
+ `;
59
73
  var COLUMNS_SQL = `
60
74
  SELECT column_name, data_type, is_nullable
61
75
  FROM information_schema.columns
@@ -63,6 +77,13 @@ var COLUMNS_SQL = `
63
77
  AND table_name = 'scheduled_messages'
64
78
  ORDER BY ordinal_position
65
79
  `;
80
+ var SYSTEM_CONFIG_COLUMNS_SQL = `
81
+ SELECT column_name, data_type, is_nullable
82
+ FROM information_schema.columns
83
+ WHERE table_schema = 'public'
84
+ AND table_name = 'system_config'
85
+ ORDER BY ordinal_position
86
+ `;
66
87
  var REQUIRED_COLUMNS = [
67
88
  "id",
68
89
  "user_id",
@@ -76,8 +97,11 @@ var REQUIRED_COLUMNS = [
76
97
 
77
98
  export {
78
99
  TABLE_SQL,
100
+ SYSTEM_CONFIG_SQL,
79
101
  INDEXES,
80
102
  VERIFY_TABLE_SQL,
103
+ VERIFY_SYSTEM_CONFIG_SQL,
81
104
  COLUMNS_SQL,
105
+ SYSTEM_CONFIG_COLUMNS_SQL,
82
106
  REQUIRED_COLUMNS
83
107
  };