@doppelgangerdev/doppelganger 0.7.0 → 0.7.3

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
@@ -130,6 +130,7 @@ node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
130
130
  | `SESSION_SECRET` | Signs session cookies. Required. | — |
131
131
  | `ALLOWED_IPS` | Comma list for basic IP allowlisting. | none (open) |
132
132
  | `TRUST_PROXY` | Honor `X-Forwarded-*` when behind a reverse proxy. | `0` |
133
+ | `ALLOW_PRIVATE_NETWORKS` | Allow scraping local/private IPs (SSRF risk). | `true` |
133
134
  | `VITE_DEV_PORT` | Port for front-end dev server. | `5173` |
134
135
  | `VITE_BACKEND_PORT` | Backend port for proxying + scripts. | `11345` |
135
136
  | `DB_TYPE` | Optional database type overriding disk storage. Set to `postgres` to use PostgreSQL. | — |
@@ -190,18 +191,27 @@ Proxies can be defined via the UI or `data/proxies.json`:
190
191
 
191
192
  # API Surface
192
193
 
193
- - **Task execution** (`POST /tasks/:id/api`)
194
- - Headers: `x-api-key` or `Authorization: Bearer <key>`.
195
- - Body: `{ "variables": { ... } }` to override task variables or provide runtime data.
196
- - **Settings**:
197
- - `/api/settings/api-key` — GET current, POST regen.
198
- - `/api/settings/user-agent` — toggle system vs custom list.
199
- - `/api/settings/proxies*` — GET/POST/PUT/DELETE plus rotation toggles.
200
- - **Clear data**:
201
- - `POST /api/clear-screenshots` — removes files in `public/captures`.
202
- - `POST /api/clear-cookies` — deletes `storage_state.json`.
194
+ Doppelganger exposes a comprehensive REST API for integration with agents (like OpenClaw) or custom automation scripts. All endpoints are hosted locally, typically on port `11345`.
203
195
 
204
- Authentication enforces sessions (`/api/auth/login`, `/api/auth/logout`, `/api/auth/me`); read `server.js` to see the guard/middleware logic.
196
+ **Authentication:**
197
+ If enabled, provide the `x-api-key` header or `Authorization: Bearer <key>`. For internal network use, this may be optional depending on your settings.
198
+
199
+
200
+ ### Task Management API
201
+ * **`GET /api/tasks`**: List all saved automation profiles.
202
+ * **`POST /api/tasks`**: Create a new task profile.
203
+ * **`PUT /api/tasks/:id`**: Update an existing task profile.
204
+ * **`POST /api/tasks/:id/api`**: Execute a predefined task. Pass `{"variables": {}}` in the body to override execution variables dynamically.
205
+
206
+ ### Execution & Logging API
207
+ * **`GET /api/executions`**: Retrieve paginated logs of all past runs.
208
+ * **`GET /api/executions/:id`**: View the exact steps, result JSON, and configuration state of a specific run.
209
+
210
+ ### Data Management API
211
+ * **`GET /api/data/captures`**: List generated screenshots, videos, and downloads.
212
+ * **`DELETE /api/data/captures/:name`**: Delete a specific capture.
213
+ * **`POST /api/clear-screenshots`**: Removes all files in `public/captures`.
214
+ * **`POST /api/clear-cookies`**: Deletes `storage_state.json`.
205
215
 
206
216
  # Task Scripting Tips
207
217
 
@@ -231,7 +241,7 @@ Authentication enforces sessions (`/api/auth/login`, `/api/auth/logout`, `/api/a
231
241
 
232
242
  - **“Session expired”** in the UI: confirm `SESSION_SECRET` is consistent and cookies aren’t blocked by your browser.
233
243
  - **Proxy import fails**: inspect `data/proxies.json` for valid URLs; the backend validates `server` as a string.
234
- - **API key lost**: regenerate from Settings → System tab; the UI copies it automatically.
244
+ - **API key lost**: copy from Settings → System tab.
235
245
 
236
246
  # Data Lifecycle
237
247
 
@@ -272,7 +282,9 @@ Authentication enforces sessions (`/api/auth/login`, `/api/auth/logout`, `/api/a
272
282
  - [ ] **Companion app** — build a lightweight companion app that mirrors critical dashboard notifications (failures, capture completions, proxy issues) so operators can stay informed without opening the full UI.
273
283
  - [ ] **Community presets hub** — build a marketplace where users can publish task/workspace presets, browse and download others’ submissions, and choose to offer each preset either for free or as a paid template so creators can monetize standalone workflows while keeping the free option available.
274
284
  - [ ] **Database Tab / Local CRM** — add a built-in spreadsheet-like interface for viewing and managing extracted data (CRM-style) entirely within the app, without requiring external tools.
285
+ - [ ] **iframe interaction support** — add the ability to target and interact with elements inside iframes in the task editor.
275
286
  - [x] **Autosave** — automatically persist task changes and editor state at regular intervals so operators don't lose work on long-running or complex workflow designs.
287
+ - [ ] **Highlight tool** — add a feature to highlight elements on the page (similar to a browser's inspect tool) to easily pick selectors and build workflows.
276
288
 
277
289
  # Security Considerations
278
290