@rensblitz/customer-instant-feedback-app 3.0.2 → 3.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/README.md +15 -17
- package/dist/customer-instant-feedback.js +1591 -1608
- package/dist/customer-instant-feedback.umd.cjs +15 -15
- package/dist/feedback/FeedbackAuthContext.d.ts +0 -1
- package/dist/feedback/FeedbackReviewPage.d.ts +1 -1
- package/dist/feedback/supabase.d.ts +1 -1
- package/migrations/rls_central.sql +13 -5
- package/package.json +1 -1
- package/supabase/config.toml +5 -0
- package/supabase/functions/README.md +4 -0
- package/supabase/functions/create-reviewer/index.ts +0 -110
- package/supabase/functions/delete-reviewer/index.ts +0 -111
package/README.md
CHANGED
|
@@ -7,7 +7,11 @@ A React component library for collecting user feedback directly within your appl
|
|
|
7
7
|
- **`packages/customer-instant-feedback-app`** — the publishable npm package (`npm run build`, `npm publish -w @rensblitz/customer-instant-feedback-app`).
|
|
8
8
|
- **`apps/demo`** — local consumer app (workspace `file:` link).
|
|
9
9
|
- **`apps/demo-npm`** — same idea, but depends on the **published** package from npm (see `apps/demo-npm/README.md`).
|
|
10
|
-
- **`apps/
|
|
10
|
+
- **`apps/projectinablitz-frontend`** — operator web UI (deploy from repo root; see [`render.yaml`](./render.yaml)).
|
|
11
|
+
|
|
12
|
+
## Production CI/CD
|
|
13
|
+
|
|
14
|
+
Pushes to **`main`** or **`master`**: migrations + Render hooks (see [`docs/DEPLOYMENT.md`](./docs/DEPLOYMENT.md)). PRs: build only.
|
|
11
15
|
|
|
12
16
|
## Features
|
|
13
17
|
|
|
@@ -15,7 +19,7 @@ A React component library for collecting user feedback directly within your appl
|
|
|
15
19
|
- Annotate specific elements
|
|
16
20
|
- Categorize feedback (Bug, UX, Content, Other)
|
|
17
21
|
- Reviewer-based authentication (no anonymous feedback)
|
|
18
|
-
-
|
|
22
|
+
- That operator UI is a **standalone app** in [`apps/projectinablitz-frontend/`](./apps/projectinablitz-frontend/) (not exported from the npm package in v3+)
|
|
19
23
|
- Feedback review page for reviewers to see all feedback (including from colleagues)
|
|
20
24
|
- Client-side rate limiting
|
|
21
25
|
- Input validation
|
|
@@ -44,7 +48,7 @@ pnpm add @rensblitz/customer-instant-feedback-app @supabase/supabase-js react re
|
|
|
44
48
|
|
|
45
49
|
### Upgrading from 2.x to 3.x
|
|
46
50
|
|
|
47
|
-
- **`FeedbackAdminPage` was removed** from the package. Remove any import and route; use
|
|
51
|
+
- **`FeedbackAdminPage` was removed** from the package. Remove any import and route; use [`apps/projectinablitz-frontend`](./apps/projectinablitz-frontend/) (or deploy it separately).
|
|
48
52
|
- **`getSupabaseClient`** is now exported if you need direct Supabase access in advanced integrations.
|
|
49
53
|
|
|
50
54
|
## Quick Start
|
|
@@ -93,17 +97,11 @@ Run these SQL files in your Supabase SQL editor, in order:
|
|
|
93
97
|
3. `migrations/rls_central.sql` – RLS policies
|
|
94
98
|
4. `migrations/create_admin.sql` – Creates your first admin (replace placeholder UUID)
|
|
95
99
|
|
|
96
|
-
### 3.
|
|
97
|
-
|
|
98
|
-
The admin UI uses Edge Functions to create/delete reviewers. Deploy them:
|
|
100
|
+
### 3. Admin reviewer provisioning (hosted admin portal)
|
|
99
101
|
|
|
100
|
-
|
|
101
|
-
# From the package root (e.g. node_modules/@rensblitz/customer-instant-feedback-app)
|
|
102
|
-
supabase functions deploy create-reviewer
|
|
103
|
-
supabase functions deploy delete-reviewer
|
|
104
|
-
```
|
|
102
|
+
**projectinablitz** in this monorepo talks to **projectinablitz-backend** (Spring Boot) to create/delete reviewer accounts; Supabase Edge Functions for that were removed.
|
|
105
103
|
|
|
106
|
-
|
|
104
|
+
If you embed only the npm package in your own app, you still use Supabase Auth + RLS as before; run the SQL migrations above. For reviewer lifecycle in a custom admin UI, call your own backend or Supabase Admin APIs with appropriate controls.
|
|
107
105
|
|
|
108
106
|
### 4. Wrap your app
|
|
109
107
|
|
|
@@ -143,13 +141,13 @@ function App() {
|
|
|
143
141
|
}
|
|
144
142
|
```
|
|
145
143
|
|
|
146
|
-
**
|
|
144
|
+
**Operator UI** (companies, projects, reviewers) is **not** part of the npm package. Run [`apps/projectinablitz-frontend`](./apps/projectinablitz-frontend/) locally or deploy it separately (e.g. Render).
|
|
147
145
|
|
|
148
146
|
**Important:** Always import the CSS file. Without it, the feedback modal has no styles.
|
|
149
147
|
|
|
150
148
|
### 5. Get your project ID
|
|
151
149
|
|
|
152
|
-
Use
|
|
150
|
+
Use **projectinablitz** (in `apps/projectinablitz-frontend/` in this repo) to create a company and project, then copy the `project_id` (format: `short-code_uuid`) and pass it to `FeedbackProvider` and `FeedbackReviewPage`.
|
|
153
151
|
|
|
154
152
|
### 6. Create the first admin
|
|
155
153
|
|
|
@@ -160,7 +158,7 @@ Use the **Feedback Admin** standalone app (in `apps/feedback-admin-app/` in this
|
|
|
160
158
|
## How it works
|
|
161
159
|
|
|
162
160
|
- **Reviewers** visit `/feedback-login` to sign in with credentials provided by an admin. Only logged-in reviewers can see and use the feedback widget. They can visit `/feedback` to see all feedback for the project (including from colleagues).
|
|
163
|
-
- **
|
|
161
|
+
- **Operators** use **projectinablitz** (`apps/projectinablitz-frontend/` in this repository, or your deployed instance) to manage companies, projects, and reviewers. Only users in the `admins` table can access it.
|
|
164
162
|
- **Feedback** is stored in the centralized Supabase project, scoped by project. Each host app passes its `projectId` to identify which project the feedback belongs to.
|
|
165
163
|
|
|
166
164
|
## Usage
|
|
@@ -182,7 +180,7 @@ Use the **Feedback Admin** standalone app (in `apps/feedback-admin-app/` in this
|
|
|
182
180
|
</FeedbackProvider>
|
|
183
181
|
```
|
|
184
182
|
|
|
185
|
-
- **projectId**: The project identifier from
|
|
183
|
+
- **projectId**: The project identifier from projectinablitz (or your own tooling). If omitted, a warning banner is shown.
|
|
186
184
|
- **enabled**: Toggle the feedback feature on/off.
|
|
187
185
|
- **feedbackReviewPath**: Path to the feedback review page (default: `/feedback`). Used for the "View all" link in the feedback toolbar.
|
|
188
186
|
- **rateLimitSeconds**: Minimum seconds between submissions.
|
|
@@ -281,7 +279,7 @@ The demo app imports from `node_modules` using `npm link`, so it works exactly l
|
|
|
281
279
|
- `/readme` - Setup guide (also available as `FeedbackReadmePage` for host apps)
|
|
282
280
|
- `/` - Demo page with the feedback widget
|
|
283
281
|
|
|
284
|
-
**
|
|
282
|
+
**projectinablitz** is a separate Vite app: run `npm run dev:frontend` from the repo root.
|
|
285
283
|
|
|
286
284
|
### Building for npm
|
|
287
285
|
|