@checkstack/signal-common 0.0.4 → 0.1.0
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/CHANGELOG.md +74 -0
- package/package.json +1 -1
- package/src/index.ts +7 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,79 @@
|
|
|
1
1
|
# @checkstack/signal-common
|
|
2
2
|
|
|
3
|
+
## 0.1.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 9faec1f: # Unified AccessRule Terminology Refactoring
|
|
8
|
+
|
|
9
|
+
This release completes a comprehensive terminology refactoring from "permission" to "accessRule" across the entire codebase, establishing a consistent and modern access control vocabulary.
|
|
10
|
+
|
|
11
|
+
## Changes
|
|
12
|
+
|
|
13
|
+
### Core Infrastructure (`@checkstack/common`)
|
|
14
|
+
|
|
15
|
+
- Introduced `AccessRule` interface as the primary access control type
|
|
16
|
+
- Added `accessPair()` helper for creating read/manage access rule pairs
|
|
17
|
+
- Added `access()` builder for individual access rules
|
|
18
|
+
- Replaced `Permission` type with `AccessRule` throughout
|
|
19
|
+
|
|
20
|
+
### API Changes
|
|
21
|
+
|
|
22
|
+
- `env.registerPermissions()` → `env.registerAccessRules()`
|
|
23
|
+
- `meta.permissions` → `meta.access` in RPC contracts
|
|
24
|
+
- `usePermission()` → `useAccess()` in frontend hooks
|
|
25
|
+
- Route `permission:` field → `accessRule:` field
|
|
26
|
+
|
|
27
|
+
### UI Changes
|
|
28
|
+
|
|
29
|
+
- "Roles & Permissions" tab → "Roles & Access Rules"
|
|
30
|
+
- "You don't have permission..." → "You don't have access..."
|
|
31
|
+
- All permission-related UI text updated
|
|
32
|
+
|
|
33
|
+
### Documentation & Templates
|
|
34
|
+
|
|
35
|
+
- Updated 18 documentation files with AccessRule terminology
|
|
36
|
+
- Updated 7 scaffolding templates with `accessPair()` pattern
|
|
37
|
+
- All code examples use new AccessRule API
|
|
38
|
+
|
|
39
|
+
## Migration Guide
|
|
40
|
+
|
|
41
|
+
### Backend Plugins
|
|
42
|
+
|
|
43
|
+
```diff
|
|
44
|
+
- import { permissionList } from "./permissions";
|
|
45
|
+
- env.registerPermissions(permissionList);
|
|
46
|
+
+ import { accessRules } from "./access";
|
|
47
|
+
+ env.registerAccessRules(accessRules);
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### RPC Contracts
|
|
51
|
+
|
|
52
|
+
```diff
|
|
53
|
+
- .meta({ userType: "user", permissions: [permissions.read.id] })
|
|
54
|
+
+ .meta({ userType: "user", access: [access.read] })
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### Frontend Hooks
|
|
58
|
+
|
|
59
|
+
```diff
|
|
60
|
+
- const canRead = accessApi.usePermission(permissions.read.id);
|
|
61
|
+
+ const canRead = accessApi.useAccess(access.read);
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Routes
|
|
65
|
+
|
|
66
|
+
```diff
|
|
67
|
+
- permission: permissions.entityRead.id,
|
|
68
|
+
+ accessRule: access.read,
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Patch Changes
|
|
72
|
+
|
|
73
|
+
- Updated dependencies [9faec1f]
|
|
74
|
+
- Updated dependencies [f533141]
|
|
75
|
+
- @checkstack/common@0.2.0
|
|
76
|
+
|
|
3
77
|
## 0.0.4
|
|
4
78
|
|
|
5
79
|
### Patch Changes
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import type {
|
|
2
|
+
import type { AccessRule, PluginMetadata } from "@checkstack/common";
|
|
3
3
|
|
|
4
4
|
// =============================================================================
|
|
5
5
|
// SIGNAL DEFINITION
|
|
@@ -121,25 +121,25 @@ export interface SignalService {
|
|
|
121
121
|
): Promise<void>;
|
|
122
122
|
|
|
123
123
|
/**
|
|
124
|
-
* Emit a signal only to users from the provided list who have the required
|
|
124
|
+
* Emit a signal only to users from the provided list who have the required access.
|
|
125
125
|
* Uses S2S RPC to filter users via AuthApi before sending.
|
|
126
126
|
*
|
|
127
127
|
* @param signal - The signal to emit
|
|
128
128
|
* @param userIds - List of user IDs to potentially send to
|
|
129
129
|
* @param payload - Signal payload
|
|
130
|
-
* @param pluginMetadata - The plugin metadata (for constructing fully-qualified
|
|
131
|
-
* @param
|
|
130
|
+
* @param pluginMetadata - The plugin metadata (for constructing fully-qualified access rule ID)
|
|
131
|
+
* @param accessRule - Access rule object with native ID (will be prefixed with pluginId)
|
|
132
132
|
*
|
|
133
133
|
* @example
|
|
134
134
|
* ```typescript
|
|
135
|
-
* import { pluginMetadata,
|
|
135
|
+
* import { pluginMetadata, healthCheckAccess } from "@checkstack/healthcheck-common";
|
|
136
136
|
*
|
|
137
137
|
* await signalService.sendToAuthorizedUsers(
|
|
138
138
|
* HEALTH_STATE_CHANGED,
|
|
139
139
|
* subscriberUserIds,
|
|
140
140
|
* { systemId, newState: "degraded" },
|
|
141
141
|
* pluginMetadata,
|
|
142
|
-
*
|
|
142
|
+
* healthCheckAccess.status
|
|
143
143
|
* );
|
|
144
144
|
* ```
|
|
145
145
|
*/
|
|
@@ -148,7 +148,7 @@ export interface SignalService {
|
|
|
148
148
|
userIds: string[],
|
|
149
149
|
payload: T,
|
|
150
150
|
pluginMetadata: PluginMetadata,
|
|
151
|
-
|
|
151
|
+
accessRule: AccessRule
|
|
152
152
|
): Promise<void>;
|
|
153
153
|
}
|
|
154
154
|
|