bkper 4.29.4 → 4.30.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 +1 -1
- package/lib/agent/extensions/bkper-ai-provider.d.ts.map +1 -1
- package/lib/agent/extensions/bkper-ai-provider.js +5 -4
- package/lib/agent/extensions/bkper-ai-provider.js.map +1 -1
- package/lib/agent/extensions/builtins.d.ts.map +1 -1
- package/lib/agent/extensions/builtins.js +0 -2
- package/lib/agent/extensions/builtins.js.map +1 -1
- package/lib/commands/apps/deploy.d.ts +24 -3
- package/lib/commands/apps/deploy.d.ts.map +1 -1
- package/lib/commands/apps/deploy.js +41 -25
- package/lib/commands/apps/deploy.js.map +1 -1
- package/lib/commands/apps/git/clone.d.ts +8 -0
- package/lib/commands/apps/git/clone.d.ts.map +1 -1
- package/lib/commands/apps/git/clone.js +20 -31
- package/lib/commands/apps/git/clone.js.map +1 -1
- package/lib/commands/apps/git/credentials.d.ts +2 -1
- package/lib/commands/apps/git/credentials.d.ts.map +1 -1
- package/lib/commands/apps/git/credentials.js +28 -12
- package/lib/commands/apps/git/credentials.js.map +1 -1
- package/lib/commands/apps/git/external-source.d.ts +16 -0
- package/lib/commands/apps/git/external-source.d.ts.map +1 -0
- package/lib/commands/apps/git/external-source.js +113 -0
- package/lib/commands/apps/git/external-source.js.map +1 -0
- package/lib/commands/apps/git/index.d.ts +2 -1
- package/lib/commands/apps/git/index.d.ts.map +1 -1
- package/lib/commands/apps/git/index.js +2 -1
- package/lib/commands/apps/git/index.js.map +1 -1
- package/lib/commands/apps/git/inspect.d.ts.map +1 -1
- package/lib/commands/apps/git/inspect.js +7 -2
- package/lib/commands/apps/git/inspect.js.map +1 -1
- package/lib/commands/apps/git/mode.d.ts +3 -2
- package/lib/commands/apps/git/mode.d.ts.map +1 -1
- package/lib/commands/apps/git/mode.js +5 -6
- package/lib/commands/apps/git/mode.js.map +1 -1
- package/lib/commands/apps/git/preflight.d.ts +8 -3
- package/lib/commands/apps/git/preflight.d.ts.map +1 -1
- package/lib/commands/apps/git/preflight.js +19 -12
- package/lib/commands/apps/git/preflight.js.map +1 -1
- package/lib/commands/apps/git/push.d.ts +6 -1
- package/lib/commands/apps/git/push.d.ts.map +1 -1
- package/lib/commands/apps/git/push.js +50 -40
- package/lib/commands/apps/git/push.js.map +1 -1
- package/lib/commands/apps/git/run-git.d.ts +1 -0
- package/lib/commands/apps/git/run-git.d.ts.map +1 -1
- package/lib/commands/apps/git/run-git.js +1 -1
- package/lib/commands/apps/git/run-git.js.map +1 -1
- package/lib/commands/apps/git/types.d.ts +2 -2
- package/lib/commands/apps/git/types.d.ts.map +1 -1
- package/lib/commands/apps/git/types.js.map +1 -1
- package/lib/commands/apps/register.js +5 -5
- package/lib/commands/apps/register.js.map +1 -1
- package/lib/commands/apps/source-workflow.d.ts +4 -1
- package/lib/commands/apps/source-workflow.d.ts.map +1 -1
- package/lib/commands/apps/source-workflow.js +87 -32
- package/lib/commands/apps/source-workflow.js.map +1 -1
- package/lib/commands/apps/sync.d.ts.map +1 -1
- package/lib/commands/apps/sync.js +1 -0
- package/lib/commands/apps/sync.js.map +1 -1
- package/lib/docs/apps/app-listing.md +3 -3
- package/lib/docs/apps/architecture.md +3 -3
- package/lib/docs/apps/configuration.md +5 -5
- package/lib/docs/apps/context-menu.md +3 -3
- package/lib/docs/apps/deploying.md +10 -8
- package/lib/docs/apps/event-handlers.md +5 -5
- package/lib/docs/apps/first-app.md +12 -12
- package/lib/docs/apps/overview.md +10 -10
- package/lib/docs/apps/quality.md +5 -5
- package/lib/docs/apps/security.md +5 -5
- package/lib/docs/apps/self-hosted.md +4 -4
- package/lib/docs/apps/shared-app-source.md +16 -11
- package/lib/docs/cli/app-management.md +17 -12
- package/lib/docs/core/core-concepts.md +1 -1
- package/lib/docs/sdk/bkper-api-types.md +2 -0
- package/lib/docs/sdk/bkper-js.md +2 -0
- package/package.json +3 -3
- package/lib/agent/extensions/image-fallback.d.ts +0 -23
- package/lib/agent/extensions/image-fallback.d.ts.map +0 -1
- package/lib/agent/extensions/image-fallback.js +0 -177
- package/lib/agent/extensions/image-fallback.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-workflow.js","sourceRoot":"","sources":["../../../src/commands/apps/source-workflow.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EACH,sBAAsB,EACtB,uBAAuB,EACvB,gBAAgB,EAChB,yBAAyB,EACzB,oBAAoB,EACpB,eAAe,EACf,sBAAsB,EACtB,qBAAqB,EACrB,gBAAgB,EAChB,0BAA0B,EAC1B,wBAAwB,
|
|
1
|
+
{"version":3,"file":"source-workflow.js","sourceRoot":"","sources":["../../../src/commands/apps/source-workflow.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../src/commands/apps/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAc,MAAM,UAAU,CAAC;AAG3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG7C;;;;GAIG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,CAI9C;AAED;;;;GAIG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,CAI9C;AAED;;;;GAIG;AACH,wBAAsB,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../src/commands/apps/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAc,MAAM,UAAU,CAAC;AAG3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG7C;;;;GAIG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,CAI9C;AAED;;;;GAIG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,CAI9C;AAED;;;;GAIG;AACH,wBAAsB,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,CAoCnD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../src/commands/apps/sync.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAO,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAC,oBAAoB,EAAC,MAAM,sBAAsB,CAAC;AAE1D;;;;GAIG;AACH,MAAM,UAAgB,SAAS;;QAC3B,MAAM,GAAG,GAAG,mBAAmB,EAAE,CAAC;QAClC,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC;QACtC,OAAO,UAAU,CAAC;IACtB,CAAC;CAAA;AAED;;;;GAIG;AACH,MAAM,UAAgB,SAAS;;QAC3B,MAAM,GAAG,GAAG,mBAAmB,EAAE,CAAC;QAClC,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC;QACtC,OAAO,UAAU,CAAC;IACtB,CAAC;CAAA;AAED;;;;GAIG;AACH,MAAM,UAAgB,OAAO;;QACzB,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,mBAAmB,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC;QAE1B,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACxD,CAAC;QAED,sBAAsB;QACtB,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC;YACD,MAAM,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1B,MAAM,GAAG,IAAI,CAAC;QAClB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,IAAI,GAAG,YAAY,UAAU,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;gBAChD,iCAAiC;gBACjC,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;gBAC/C,MAAM,GAAG,KAAK,CAAC;YACnB,CAAC;iBAAM,CAAC;gBACJ,MAAM,GAAG,CAAC;YACd,CAAC;QACL,CAAC;QAED,OAAO,oBAAoB,CAAC;YACxB,KAAK;YACL,aAAa,EAAE,MAAM;YACrB,QAAQ,EAAE,CAAM,MAAM,EAAC,EAAE;gBACrB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBACvB,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC;gBACvB,CAAC;qBAAM,CAAC;oBACJ,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC;gBACvB,CAAC;YACL,CAAC,CAAA;SACJ,CAAC,CAAC;IACP,CAAC;CAAA"}
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../src/commands/apps/sync.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAO,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAC,oBAAoB,EAAC,MAAM,sBAAsB,CAAC;AAE1D;;;;GAIG;AACH,MAAM,UAAgB,SAAS;;QAC3B,MAAM,GAAG,GAAG,mBAAmB,EAAE,CAAC;QAClC,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC;QACtC,OAAO,UAAU,CAAC;IACtB,CAAC;CAAA;AAED;;;;GAIG;AACH,MAAM,UAAgB,SAAS;;QAC3B,MAAM,GAAG,GAAG,mBAAmB,EAAE,CAAC;QAClC,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC;QACtC,OAAO,UAAU,CAAC;IACtB,CAAC;CAAA;AAED;;;;GAIG;AACH,MAAM,UAAgB,OAAO;;QACzB,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,mBAAmB,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC;QAE1B,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACxD,CAAC;QAED,sBAAsB;QACtB,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC;YACD,MAAM,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1B,MAAM,GAAG,IAAI,CAAC;QAClB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,IAAI,GAAG,YAAY,UAAU,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;gBAChD,iCAAiC;gBACjC,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;gBAC/C,MAAM,GAAG,KAAK,CAAC;YACnB,CAAC;iBAAM,CAAC;gBACJ,MAAM,GAAG,CAAC;YACd,CAAC;QACL,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC1C,OAAO,oBAAoB,CAAC;YACxB,KAAK;YACL,aAAa,EAAE,MAAM;YACrB,QAAQ,EAAE,CAAM,MAAM,EAAC,EAAE;gBACrB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBACvB,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC;gBACvB,CAAC;qBAAM,CAAC;oBACJ,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC;gBACvB,CAAC;YACL,CAAC,CAAA;SACJ,CAAC,CAAC;IACP,CAAC;CAAA"}
|
|
@@ -4,7 +4,7 @@ All Bkper apps are listed on the Automations Portal at _[app.bkper.com](https://
|
|
|
4
4
|
|
|
5
5
|

|
|
6
6
|
|
|
7
|
-
App listings are populated from the fields you declare in [`bkper.yaml`](https://bkper.com/docs/
|
|
7
|
+
App listings are populated from the fields you declare in [`bkper.yaml`](https://bkper.com/docs/platform/apps/configuration.md). Sync metadata changes with `bkper app sync`. Deploying code is a separate step.
|
|
8
8
|
|
|
9
9
|
## Listing fields
|
|
10
10
|
|
|
@@ -24,7 +24,7 @@ ownerWebsite: https://yourwebsite.com
|
|
|
24
24
|
website: https://your-app.bkper.app
|
|
25
25
|
```
|
|
26
26
|
|
|
27
|
-
See [App Configuration](https://bkper.com/docs/
|
|
27
|
+
See [App Configuration](https://bkper.com/docs/platform/apps/configuration.md) for the full `bkper.yaml` reference.
|
|
28
28
|
|
|
29
29
|
## Default visibility
|
|
30
30
|
|
|
@@ -49,7 +49,7 @@ To make your app available to all Bkper users, contact us at [support@bkper.com]
|
|
|
49
49
|
### What the review involves
|
|
50
50
|
|
|
51
51
|
- **Functionality check** — The app works correctly and handles errors gracefully
|
|
52
|
-
- **Quality review** — The implementation follows the [App Quality Guidelines](https://bkper.com/docs/
|
|
52
|
+
- **Quality review** — The implementation follows the [App Quality Guidelines](https://bkper.com/docs/platform/apps/quality.md)
|
|
53
53
|
- **Security review** — Event handlers are idempotent and include loop prevention
|
|
54
54
|
- **Listing quality** — The app has a clear name, description, logo, and user-facing documentation
|
|
55
55
|
|
|
@@ -4,7 +4,7 @@ Bkper platform apps use one Worker bundle per app and environment. The same Work
|
|
|
4
4
|
|
|
5
5
|
Treat `/api/*` as the reusable surface for app behavior. The bundled web client is one consumer; scripts, external clients, and agents can call the same routes with bearer authentication.
|
|
6
6
|
|
|
7
|
-
Follow the [App Quality Guidelines](https://bkper.com/docs/
|
|
7
|
+
Follow the [App Quality Guidelines](https://bkper.com/docs/platform/apps/quality.md) when implementing, changing, or reviewing an app.
|
|
8
8
|
|
|
9
9
|
## Structure
|
|
10
10
|
|
|
@@ -204,7 +204,7 @@ Platform outbound authentication injects the validated user's OAuth token on Bkp
|
|
|
204
204
|
|
|
205
205
|
Authentication identifies the Bkper user, but each app must authorize sensitive data and actions server-side. Client-side checks are not an authorization boundary.
|
|
206
206
|
|
|
207
|
-
See [App Security](https://bkper.com/docs/
|
|
207
|
+
See [App Security](https://bkper.com/docs/platform/apps/security.md) for domain restrictions, Book permissions, and app installation checks.
|
|
208
208
|
|
|
209
209
|
## Event handlers
|
|
210
210
|
|
|
@@ -212,7 +212,7 @@ Platform event deliveries reach `/events` on the same Worker. Event adapters liv
|
|
|
212
212
|
|
|
213
213
|
Event code uses server-side `new Bkper()` and must not read `bkper-oauth-token`, `bkper-agent-id`, or `Authorization` headers. Dispatch and platform outbound authentication handle the event token and app agent identity.
|
|
214
214
|
|
|
215
|
-
See [Event Handlers](https://bkper.com/docs/
|
|
215
|
+
See [Event Handlers](https://bkper.com/docs/platform/apps/event-handlers.md) for routing, responses, loop prevention, and event types. Self-hosted handlers process event authentication directly because the platform outbound layer is not involved.
|
|
216
216
|
|
|
217
217
|
## App shapes
|
|
218
218
|
|
|
@@ -97,7 +97,7 @@ deployment:
|
|
|
97
97
|
|
|
98
98
|
`SIDEBAR` and `EXPANDED` Apps can receive live context updates while their iframe stays loaded. `NEW_TAB` Apps receive context only in the URL used to open the tab.
|
|
99
99
|
|
|
100
|
-
See [Context Menu](https://bkper.com/docs/
|
|
100
|
+
See [Context Menu](https://bkper.com/docs/platform/apps/context-menu.md#live-context-updates) for menu URL configuration and live context updates.
|
|
101
101
|
|
|
102
102
|
### Menu URL variables
|
|
103
103
|
|
|
@@ -123,9 +123,9 @@ The following variables can be used in `menuUrl` and `menuUrlDev`:
|
|
|
123
123
|
| `webhookUrl` | Production webhook URL for receiving events. |
|
|
124
124
|
| `webhookUrlDev` | Development webhook URL (auto-updated by `bkper app dev`). |
|
|
125
125
|
| `apiVersion` | API version for event payloads (currently `v5`). |
|
|
126
|
-
| `events` | List of [event types](https://bkper.com/docs/
|
|
126
|
+
| `events` | List of [event types](https://bkper.com/docs/platform/apps/event-handlers.md#event-types) to subscribe to. |
|
|
127
127
|
|
|
128
|
-
See [Event Handlers](https://bkper.com/docs/
|
|
128
|
+
See [Event Handlers](https://bkper.com/docs/platform/apps/event-handlers.md) for details on handling events.
|
|
129
129
|
|
|
130
130
|
### File patterns
|
|
131
131
|
|
|
@@ -160,7 +160,7 @@ propertiesSchema:
|
|
|
160
160
|
|
|
161
161
|
### Deployment
|
|
162
162
|
|
|
163
|
-
For apps deployed to the [Bkper Platform](https://bkper.com/docs/
|
|
163
|
+
For apps deployed to the [Bkper Platform](https://bkper.com/docs/platform/apps/overview.md):
|
|
164
164
|
|
|
165
165
|
| Field | Description |
|
|
166
166
|
| ------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
|
|
@@ -170,4 +170,4 @@ For apps deployed to the [Bkper Platform](https://bkper.com/docs/build/apps/over
|
|
|
170
170
|
| `deployment.secrets` | Secret names used by the app. Managed via `bkper app secrets`. |
|
|
171
171
|
| `deployment.compatibility_date` | [Cloudflare Workers compatibility date](https://developers.cloudflare.com/workers/configuration/compatibility-dates/). |
|
|
172
172
|
|
|
173
|
-
See [Building & Deploying](https://bkper.com/docs/
|
|
173
|
+
See [Building & Deploying](https://bkper.com/docs/platform/apps/deploying.md) for the full deployment workflow.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Apps can add context menu items on the Transactions page **More** menu in your Books. This lets you open dynamically built URLs with reference to the current Book's context — the active query, selected account, date range, and more.
|
|
4
4
|
|
|
5
|
-
Embedded interfaces should follow the [App Quality Guidelines](https://bkper.com/docs/
|
|
5
|
+
Embedded interfaces should follow the [App Quality Guidelines](https://bkper.com/docs/platform/apps/quality.md) for visual consistency, startup behavior, and Book-context verification.
|
|
6
6
|
|
|
7
7
|
## How it works
|
|
8
8
|
|
|
@@ -16,7 +16,7 @@ When clicked, a popup opens carrying the particular context of that book at that
|
|
|
16
16
|
|
|
17
17
|
## Configuration
|
|
18
18
|
|
|
19
|
-
Configure the menu URL in your [`bkper.yaml`](https://bkper.com/docs/
|
|
19
|
+
Configure the menu URL in your [`bkper.yaml`](https://bkper.com/docs/platform/apps/configuration.md):
|
|
20
20
|
|
|
21
21
|
```yaml
|
|
22
22
|
menuUrl: https://my-app.bkper.app?bookId=${book.id}&query=${transactions.query}
|
|
@@ -115,4 +115,4 @@ The menu URL supports these dynamic expressions:
|
|
|
115
115
|
| `${group.id}` | The selected group ID |
|
|
116
116
|
| `${group.name}` | The selected group name |
|
|
117
117
|
|
|
118
|
-
For the full list of accepted expressions, see the [Menu URL variables](https://bkper.com/docs/
|
|
118
|
+
For the full list of accepted expressions, see the [Menu URL variables](https://bkper.com/docs/platform/apps/configuration.md#menu-url-variables) reference.
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
## The deployment workflow
|
|
4
4
|
|
|
5
|
+
Sync and deployment require an attached, clean, committed Git branch whose current commit is stored remotely. Bkper-managed private Git is recommended. Apps without Git receive actionable initialization and managed-sync instructions from the CLI; external repositories must configure and push the current branch to its intended upstream.
|
|
6
|
+
|
|
5
7
|
Run the template's deterministic checks before releasing:
|
|
6
8
|
|
|
7
9
|
```bash
|
|
@@ -26,7 +28,7 @@ npm run check
|
|
|
26
28
|
bkper app sync
|
|
27
29
|
```
|
|
28
30
|
|
|
29
|
-
|
|
31
|
+
Verifies stored source, then syncs your `bkper.yaml` configuration to Bkper — name, description, menu URLs, webhook URLs, access control, and branding. For managed source, it safely pushes the current clean, committed branch. For external source, it fetches the configured upstream and verifies that it contains the current commit. Sync does not build or deploy the app.
|
|
30
32
|
|
|
31
33
|
3. **Deploy** — Upload the local build to the platform
|
|
32
34
|
|
|
@@ -34,7 +36,7 @@ npm run check
|
|
|
34
36
|
bkper app deploy
|
|
35
37
|
```
|
|
36
38
|
|
|
37
|
-
|
|
39
|
+
Deploy verifies stored source again. Managed source is pushed and Platform-verified; external source is checked against the configured upstream by the CLI. Deploy then uploads your existing pre-built code from `dist/` to the Bkper Platform. The command does not run a build, and the Platform does not prove that `dist/` was produced from the verified commit. Your app is live at `https://{appId}.bkper.app`.
|
|
38
40
|
|
|
39
41
|
The app template combines all three after source changes are committed:
|
|
40
42
|
|
|
@@ -46,7 +48,7 @@ Use `npm run deploy:preview` for the preview environment.
|
|
|
46
48
|
|
|
47
49
|
> **Caution: Source is not deployment**
|
|
48
50
|
> An ordinary `git push` stores source only and never deploys. `bkper app sync` also does not deploy. Run `bkper app deploy` explicitly when the local build is ready to release.
|
|
49
|
-
See [Shared App Source](https://bkper.com/docs/
|
|
51
|
+
See [Shared App Source](https://bkper.com/docs/platform/apps/shared-app-source.md) for managed-source setup, cloning, access, and external Git workflows.
|
|
50
52
|
|
|
51
53
|
### Production
|
|
52
54
|
|
|
@@ -131,7 +133,7 @@ app.get('/api/data', async c => {
|
|
|
131
133
|
});
|
|
132
134
|
```
|
|
133
135
|
|
|
134
|
-
During local development, use the `.dev.vars` file instead. See [Development Experience](https://bkper.com/docs/
|
|
136
|
+
During local development, use the `.dev.vars` file instead. See [Development Experience](https://bkper.com/docs/platform/apps/development.md#local-secrets).
|
|
135
137
|
|
|
136
138
|
### KV storage
|
|
137
139
|
|
|
@@ -172,10 +174,10 @@ bkper app install <appId> -b <bookId>
|
|
|
172
174
|
bkper app uninstall <appId> -b <bookId>
|
|
173
175
|
```
|
|
174
176
|
|
|
175
|
-
Once installed, the app's [event handlers](https://bkper.com/docs/
|
|
177
|
+
Once installed, the app's [event handlers](https://bkper.com/docs/platform/apps/event-handlers.md) receive events from that book at `/events`, and the app's [context menu](https://bkper.com/docs/platform/apps/context-menu.md) appears in the book's UI.
|
|
176
178
|
|
|
177
179
|
## Next steps
|
|
178
180
|
|
|
179
|
-
- [Shared App Source](https://bkper.com/docs/
|
|
180
|
-
- [Development Experience](https://bkper.com/docs/
|
|
181
|
-
- [App Listing](https://bkper.com/docs/
|
|
181
|
+
- [Shared App Source](https://bkper.com/docs/platform/apps/shared-app-source.md) — Share private source without coupling Git pushes to deployment
|
|
182
|
+
- [Development Experience](https://bkper.com/docs/platform/apps/development.md) — Run the app and event delivery locally
|
|
183
|
+
- [App Listing](https://bkper.com/docs/platform/apps/app-listing.md) — Prepare the app for installation
|
|
@@ -6,11 +6,11 @@ Event handlers are the code that reacts to events in your Bkper Books. When a tr
|
|
|
6
6
|
|
|
7
7
|
## How it works
|
|
8
8
|
|
|
9
|
-
1. You declare which events your app handles in [`bkper.yaml`](https://bkper.com/docs/
|
|
9
|
+
1. You declare which events your app handles in [`bkper.yaml`](https://bkper.com/docs/platform/apps/configuration.md)
|
|
10
10
|
2. Bkper sends an HTTP POST to your webhook URL when those events fire
|
|
11
11
|
3. Your handler processes the event and returns a response
|
|
12
12
|
|
|
13
|
-
On the [Bkper Platform](https://bkper.com/docs/
|
|
13
|
+
On the [Bkper Platform](https://bkper.com/docs/platform/apps/overview.md), events are routed to `/events` on your app's single Worker — including local development via tunnels. For [self-hosted](https://bkper.com/docs/platform/apps/self-hosted.md) setups, you configure the webhook URL directly.
|
|
14
14
|
|
|
15
15
|
## Agent identity
|
|
16
16
|
|
|
@@ -99,7 +99,7 @@ Do not read `bkper-oauth-token`, `bkper-agent-id`, or `Authorization` headers in
|
|
|
99
99
|
|
|
100
100
|
> **Note**
|
|
101
101
|
> During local development, events are routed through the Cloudflare tunnel started by `bkper app dev`. Local outbound uses your CLI credentials when the handler calls Bkper.
|
|
102
|
-
For [self-hosted](https://bkper.com/docs/
|
|
102
|
+
For [self-hosted](https://bkper.com/docs/platform/apps/self-hosted.md) setups, the event auth headers are sent to both `webhookUrl` and `webhookUrlDev` and must be handled directly by your infrastructure.
|
|
103
103
|
|
|
104
104
|
## Event routing pattern
|
|
105
105
|
|
|
@@ -197,7 +197,7 @@ The event payload has the following structure:
|
|
|
197
197
|
}
|
|
198
198
|
```
|
|
199
199
|
|
|
200
|
-
The event payload is the same structure exposed by the [REST API](https://bkper.com/docs/
|
|
200
|
+
The event payload is the same structure exposed by the [REST API](https://bkper.com/docs/platform/scripts/rest-api.md). If you use TypeScript, add the [`@bkper/bkper-api-types`](https://www.npmjs.com/package/@bkper/bkper-api-types) package to your project for full type definitions.
|
|
201
201
|
|
|
202
202
|
For update events, `data.previousAttributes` contains the fields that changed and their previous values — useful for computing diffs or reacting only to specific field changes.
|
|
203
203
|
|
|
@@ -212,7 +212,7 @@ events:
|
|
|
212
212
|
- ACCOUNT_CREATED
|
|
213
213
|
```
|
|
214
214
|
|
|
215
|
-
The complete
|
|
215
|
+
The complete API set of event types is listed below. `COMMENT_CREATED` and `COMMENT_DELETED` remain in the API for compatibility with historical Events; Comments are not available in the current Bkper PWA.
|
|
216
216
|
|
|
217
217
|
| Event | Description |
|
|
218
218
|
| --- | --- |
|
|
@@ -4,7 +4,7 @@ This tutorial walks you through building and deploying a Bkper app from scratch.
|
|
|
4
4
|
|
|
5
5
|
## Prerequisites
|
|
6
6
|
|
|
7
|
-
[Development Setup](https://bkper.com/docs/
|
|
7
|
+
[Development Setup](https://bkper.com/docs/platform/getting-started/setup.md) — the CLI installed and authenticated.
|
|
8
8
|
|
|
9
9
|
## Walkthrough
|
|
10
10
|
|
|
@@ -15,7 +15,7 @@ This tutorial walks you through building and deploying a Bkper app from scratch.
|
|
|
15
15
|
cd my-app
|
|
16
16
|
```
|
|
17
17
|
|
|
18
|
-
`bkper app init my-app` creates `./my-app` and uses `my-app` as the app id. The CLI sets your package name, URLs, and event-handler loop guards automatically. See [App Configuration](https://bkper.com/docs/
|
|
18
|
+
`bkper app init my-app` creates `./my-app` and uses `my-app` as the app id. The CLI sets your package name, URLs, and event-handler loop guards automatically. See [App Configuration](https://bkper.com/docs/platform/apps/configuration.md) for the full `bkper.yaml` reference.
|
|
19
19
|
|
|
20
20
|
2. **Install and start developing**
|
|
21
21
|
|
|
@@ -24,7 +24,7 @@ This tutorial walks you through building and deploying a Bkper app from scratch.
|
|
|
24
24
|
npm run dev
|
|
25
25
|
```
|
|
26
26
|
|
|
27
|
-
This runs the Vite client dev server and the local Worker runtime with automatic event tunneling. See [Development Experience](https://bkper.com/docs/
|
|
27
|
+
This runs the Vite client dev server and the local Worker runtime with automatic event tunneling. See [Development Experience](https://bkper.com/docs/platform/apps/development.md) for details.
|
|
28
28
|
|
|
29
29
|
3. **Open the app**
|
|
30
30
|
|
|
@@ -32,7 +32,7 @@ This tutorial walks you through building and deploying a Bkper app from scratch.
|
|
|
32
32
|
|
|
33
33
|
4. **Trigger an event**
|
|
34
34
|
|
|
35
|
-
Go to any Bkper book and check a transaction. The event handler creates a 20% draft using the original from and to Accounts. It does not affect balances unless posted. See [Event Handlers](https://bkper.com/docs/
|
|
35
|
+
Go to any Bkper book and check a transaction. The event handler creates a 20% draft using the original from and to Accounts. It does not affect balances unless posted. See [Event Handlers](https://bkper.com/docs/platform/apps/event-handlers.md) for the full event model.
|
|
36
36
|
|
|
37
37
|
5. **Make a change**
|
|
38
38
|
|
|
@@ -40,7 +40,7 @@ This tutorial walks you through building and deploying a Bkper app from scratch.
|
|
|
40
40
|
|
|
41
41
|
6. **Customize your listing**
|
|
42
42
|
|
|
43
|
-
Update `bkper.yaml` with your app's description and owner details. Replace the placeholder logos in `client/public/images/`. See [App Listing](https://bkper.com/docs/
|
|
43
|
+
Update `bkper.yaml` with your app's description and owner details. Replace the placeholder logos in `client/public/images/`. See [App Listing](https://bkper.com/docs/platform/apps/app-listing.md) for publishing details.
|
|
44
44
|
|
|
45
45
|
7. **Update the README**
|
|
46
46
|
|
|
@@ -56,7 +56,7 @@ This tutorial walks you through building and deploying a Bkper app from scratch.
|
|
|
56
56
|
bkper app sync
|
|
57
57
|
```
|
|
58
58
|
|
|
59
|
-
|
|
59
|
+
Stored Git source is required before an app can sync or deploy. For this standalone app without an external remote, sync creates the recommended private Bkper-managed source and configures it as `origin`. Authorized teammates and coding agents can then clone the same codebase with `bkper app clone my-app`. See [Shared App Source](https://bkper.com/docs/platform/apps/shared-app-source.md) for access rules and external source workflows.
|
|
60
60
|
|
|
61
61
|
9. **Check and deploy**
|
|
62
62
|
|
|
@@ -65,12 +65,12 @@ This tutorial walks you through building and deploying a Bkper app from scratch.
|
|
|
65
65
|
npm run deploy
|
|
66
66
|
```
|
|
67
67
|
|
|
68
|
-
Deployment is explicit: syncing or pushing source does not deploy the app. Your app is live at `https://my-app.bkper.app`. See [Building & Deploying](https://bkper.com/docs/
|
|
68
|
+
Deployment is explicit: syncing or pushing source does not deploy the app. Your app is live at `https://my-app.bkper.app`. See [Building & Deploying](https://bkper.com/docs/platform/apps/deploying.md) for preview environments, secrets, and KV.
|
|
69
69
|
|
|
70
70
|
## Next steps
|
|
71
71
|
|
|
72
|
-
- [Shared App Source](https://bkper.com/docs/
|
|
73
|
-
- [App Architecture](https://bkper.com/docs/
|
|
74
|
-
- [App Configuration](https://bkper.com/docs/
|
|
75
|
-
- [Event Handlers](https://bkper.com/docs/
|
|
76
|
-
- [Building & Deploying](https://bkper.com/docs/
|
|
72
|
+
- [Shared App Source](https://bkper.com/docs/platform/apps/shared-app-source.md) — Clone and improve one private app codebase together
|
|
73
|
+
- [App Architecture](https://bkper.com/docs/platform/apps/architecture.md) — Understand the single Worker client/server structure
|
|
74
|
+
- [App Configuration](https://bkper.com/docs/platform/apps/configuration.md) — Full `bkper.yaml` reference
|
|
75
|
+
- [Event Handlers](https://bkper.com/docs/platform/apps/event-handlers.md) — All event types and patterns
|
|
76
|
+
- [Building & Deploying](https://bkper.com/docs/platform/apps/deploying.md) — Preview environments and secrets
|
|
@@ -20,20 +20,20 @@ The same Worker can expose app-defined `/api/*` routes. Treat those routes as th
|
|
|
20
20
|
|
|
21
21
|
When an app needs model inference, use Bkper AI by default. An authenticated app API route or event establishes the user and app identity, then platform outbound supplies authorization and usage attribution for the Worker's Bkper AI requests. The app does not need provider credentials.
|
|
22
22
|
|
|
23
|
-
See [Add Bkper AI to an App](https://bkper.com/docs/
|
|
23
|
+
See [Add Bkper AI to an App](https://bkper.com/docs/platform/apps/ai.md) for live model discovery, strict structured output, validation, and the client-to-Worker authentication flow.
|
|
24
24
|
|
|
25
25
|
### Authentication
|
|
26
26
|
|
|
27
27
|
OAuth is pre-configured. No client IDs, no redirect URIs, no consent screens to build.
|
|
28
28
|
|
|
29
|
-
- **Web client** — Use `@bkper/web-auth`: `auth.getAccessToken()`. See [App Architecture → Client authentication](https://bkper.com/docs/
|
|
30
|
-
- **Server API routes** — Send `Authorization: Bearer <token>` to `/api/*`; dispatch validates it and platform outbound injects auth for server-side Bkper API calls. See [App Architecture → Server API authentication](https://bkper.com/docs/
|
|
31
|
-
- **Event handlers** — Handle `/events` in the same Worker and call Bkper with server-side `new Bkper()`; dispatch/outbound handle auth and agent identity. See [Event Handlers → Authentication](https://bkper.com/docs/
|
|
32
|
-
- **Local development** — The Vite auth middleware uses your CLI credentials. See [Development Experience → Local development authentication](https://bkper.com/docs/
|
|
29
|
+
- **Web client** — Use `@bkper/web-auth`: `auth.getAccessToken()`. See [App Architecture → Client authentication](https://bkper.com/docs/platform/apps/architecture.md#client-authentication).
|
|
30
|
+
- **Server API routes** — Send `Authorization: Bearer <token>` to `/api/*`; dispatch validates it and platform outbound injects auth for server-side Bkper API calls. See [App Architecture → Server API authentication](https://bkper.com/docs/platform/apps/architecture.md#server-api-authentication).
|
|
31
|
+
- **Event handlers** — Handle `/events` in the same Worker and call Bkper with server-side `new Bkper()`; dispatch/outbound handle auth and agent identity. See [Event Handlers → Authentication](https://bkper.com/docs/platform/apps/event-handlers.md#authentication).
|
|
32
|
+
- **Local development** — The Vite auth middleware uses your CLI credentials. See [Development Experience → Local development authentication](https://bkper.com/docs/platform/apps/development.md#local-development-authentication).
|
|
33
33
|
|
|
34
34
|
### Services
|
|
35
35
|
|
|
36
|
-
Declare the services you need in [`bkper.yaml`](https://bkper.com/docs/
|
|
36
|
+
Declare the services you need in [`bkper.yaml`](https://bkper.com/docs/platform/apps/configuration.md) and the platform provisions them:
|
|
37
37
|
|
|
38
38
|
- **KV storage** — Key-value storage for caching and state. Access via `c.env.KV` in your handlers.
|
|
39
39
|
- **Secrets** — Securely stored environment variables. Set via `bkper app secrets put`, access via `c.env.SECRET_NAME`.
|
|
@@ -54,7 +54,7 @@ Bkper can host one private codebase for your app. Authorized teammates and codin
|
|
|
54
54
|
|
|
55
55
|
Source synchronization remains separate from deployment. A Git push stores source but never builds or deploys the app.
|
|
56
56
|
|
|
57
|
-
See [Shared App Source](https://bkper.com/docs/
|
|
57
|
+
See [Shared App Source](https://bkper.com/docs/platform/apps/shared-app-source.md) for the collaboration workflow, access rules, and external Git options.
|
|
58
58
|
|
|
59
59
|
### Deployment
|
|
60
60
|
|
|
@@ -101,6 +101,6 @@ This gives you a working app with a client UI, server API routes, and `/events`
|
|
|
101
101
|
|
|
102
102
|
## Next steps
|
|
103
103
|
|
|
104
|
-
- [Your First App](https://bkper.com/docs/
|
|
105
|
-
- [Shared App Source](https://bkper.com/docs/
|
|
106
|
-
- [App Architecture](https://bkper.com/docs/
|
|
104
|
+
- [Your First App](https://bkper.com/docs/platform/apps/first-app.md) — Build and deploy a complete platform app
|
|
105
|
+
- [Shared App Source](https://bkper.com/docs/platform/apps/shared-app-source.md) — Collaborate from one private codebase
|
|
106
|
+
- [App Architecture](https://bkper.com/docs/platform/apps/architecture.md) — Understand how platform apps are structured
|
package/lib/docs/apps/quality.md
CHANGED
|
@@ -66,7 +66,7 @@ Keep the security boundary simple and explicit:
|
|
|
66
66
|
- Access only the Book data needed for the operation.
|
|
67
67
|
- Make event handling safe to retry and prevent event loops.
|
|
68
68
|
|
|
69
|
-
See [App Security](https://bkper.com/docs/
|
|
69
|
+
See [App Security](https://bkper.com/docs/platform/apps/security.md) and [Event Handlers](https://bkper.com/docs/platform/apps/event-handlers.md) for implementation details.
|
|
70
70
|
|
|
71
71
|
## Verification
|
|
72
72
|
|
|
@@ -81,7 +81,7 @@ App reviews should report concrete findings with file locations and suggested fi
|
|
|
81
81
|
|
|
82
82
|
## Next Steps
|
|
83
83
|
|
|
84
|
-
- [App Architecture](https://bkper.com/docs/
|
|
85
|
-
- [App Security](https://bkper.com/docs/
|
|
86
|
-
- [Context Menu](https://bkper.com/docs/
|
|
87
|
-
- [Development Experience](https://bkper.com/docs/
|
|
84
|
+
- [App Architecture](https://bkper.com/docs/platform/apps/architecture.md) — Client, server, API, and event structure.
|
|
85
|
+
- [App Security](https://bkper.com/docs/platform/apps/security.md) — Authentication and authorization boundaries.
|
|
86
|
+
- [Context Menu](https://bkper.com/docs/platform/apps/context-menu.md) — Embedded Book context and open modes.
|
|
87
|
+
- [Development Experience](https://bkper.com/docs/platform/apps/development.md) — Local development and deterministic checks.
|
|
@@ -8,7 +8,7 @@ Authentication identifies the Bkper user making a request. The platform handles
|
|
|
8
8
|
|
|
9
9
|
Authorization determines whether that user may perform a specific operation.
|
|
10
10
|
|
|
11
|
-
See [App Architecture](https://bkper.com/docs/
|
|
11
|
+
See [App Architecture](https://bkper.com/docs/platform/apps/architecture.md) for the client and server authentication flow.
|
|
12
12
|
|
|
13
13
|
## Authorize app operations
|
|
14
14
|
|
|
@@ -68,7 +68,7 @@ if (!isInstalled) {
|
|
|
68
68
|
|
|
69
69
|
## Next Steps
|
|
70
70
|
|
|
71
|
-
- [App Quality Guidelines](https://bkper.com/docs/
|
|
72
|
-
- [App Architecture](https://bkper.com/docs/
|
|
73
|
-
- [Building & Deploying](https://bkper.com/docs/
|
|
74
|
-
- [Event Handlers](https://bkper.com/docs/
|
|
71
|
+
- [App Quality Guidelines](https://bkper.com/docs/platform/apps/quality.md) — Review cross-cutting app quality and security expectations.
|
|
72
|
+
- [App Architecture](https://bkper.com/docs/platform/apps/architecture.md) — Understand client and server authentication flows.
|
|
73
|
+
- [Building & Deploying](https://bkper.com/docs/platform/apps/deploying.md#setting-secrets) — Store production and preview secrets.
|
|
74
|
+
- [Event Handlers](https://bkper.com/docs/platform/apps/event-handlers.md#authentication) — Understand authentication for platform and self-hosted events.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Bkper Self-Hosted Webhooks
|
|
2
2
|
|
|
3
|
-
The [Bkper Platform](https://bkper.com/docs/
|
|
3
|
+
The [Bkper Platform](https://bkper.com/docs/platform/apps/overview.md) handles hosting, authentication, and deployment for you. However, you can host event handlers on your own infrastructure if you have specific requirements — existing cloud setup, compliance constraints, or legacy apps.
|
|
4
4
|
|
|
5
5
|
> **Tip**
|
|
6
6
|
> Use the Bkper Platform unless you have a specific reason to self-host. It eliminates the need to manage authentication, secrets, hosting, and deployment yourself.
|
|
@@ -8,7 +8,7 @@ The [Bkper Platform](https://bkper.com/docs/build/apps/overview.md) handles host
|
|
|
8
8
|
|
|
9
9
|
A Bkper event handler running on [Google Cloud Functions](https://cloud.google.com/functions/) receives authenticated calls from the `bkper-hrd@appspot.gserviceaccount.com` service account. You need to grant this service account the [Cloud Functions Invoker IAM role](https://cloud.google.com/functions/docs/securing/managing-access-iam) (`roles/cloudfunctions.invoker`).
|
|
10
10
|
|
|
11
|
-
Set the production endpoint in [`bkper.yaml`](https://bkper.com/docs/
|
|
11
|
+
Set the production endpoint in [`bkper.yaml`](https://bkper.com/docs/platform/apps/configuration.md):
|
|
12
12
|
|
|
13
13
|
```yaml
|
|
14
14
|
webhookUrl: https://us-central1-my-project.cloudfunctions.net/events
|
|
@@ -32,7 +32,7 @@ The function response must follow the standard format:
|
|
|
32
32
|
{ result?: any, error?: any }
|
|
33
33
|
```
|
|
34
34
|
|
|
35
|
-
See [Event Handlers](https://bkper.com/docs/
|
|
35
|
+
See [Event Handlers](https://bkper.com/docs/platform/apps/event-handlers.md#response-format) for details on response handling.
|
|
36
36
|
|
|
37
37
|
### Considerations
|
|
38
38
|
|
|
@@ -46,7 +46,7 @@ See [Event Handlers](https://bkper.com/docs/build/apps/event-handlers.md#respons
|
|
|
46
46
|
|
|
47
47
|
You can host event handlers on any infrastructure — other cloud providers, containers, on-premise servers.
|
|
48
48
|
|
|
49
|
-
Configure the same `webhookUrl` property in [`bkper.yaml`](https://bkper.com/docs/
|
|
49
|
+
Configure the same `webhookUrl` property in [`bkper.yaml`](https://bkper.com/docs/platform/apps/configuration.md):
|
|
50
50
|
|
|
51
51
|
```yaml
|
|
52
52
|
webhookUrl: https://my-server.example.com/bkper/events
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Bkper-managed app source gives your team and coding agents one shared private codebase for a Bkper app. Authorized app developers can clone the same repository, improve it locally, and continue from one shared history without setting up a separate Git host.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Every app sync and deployment requires clean, committed source stored in a durable Git remote. Bkper-managed source is the recommended default for development collaboration. It does not automatically build or deploy your app.
|
|
6
6
|
|
|
7
7
|
## Who can access the source
|
|
8
8
|
|
|
@@ -66,7 +66,7 @@ Keep agent instructions such as `AGENTS.md` in the repository so every teammate
|
|
|
66
66
|
|
|
67
67
|
## Source synchronization is not deployment
|
|
68
68
|
|
|
69
|
-
Source storage and app deployment are separate operations
|
|
69
|
+
Source storage and app deployment are separate operations. Apps without a Git repository cannot sync or deploy; the CLI provides the initialization and managed-sync steps needed to establish source safely.
|
|
70
70
|
|
|
71
71
|
| Action | What it does with source | Does it deploy? |
|
|
72
72
|
| ------------------ | ------------------------------------------------------------------------------ | --------------- |
|
|
@@ -75,19 +75,24 @@ Source storage and app deployment are separate operations:
|
|
|
75
75
|
| `npm run build` | Creates local build output in `dist/`. | No |
|
|
76
76
|
| `bkper app deploy` | Pushes and verifies the managed commit, then uploads the existing local build. | Yes |
|
|
77
77
|
|
|
78
|
-
An ordinary Git push never deploys. `bkper app deploy` also does not run a build, so build locally before deploying the result you intend to release.
|
|
78
|
+
An ordinary Git push never deploys. `bkper app deploy` also does not run a build, so build locally before deploying the result you intend to release. The CLI verifies the stored source commit but does not prove that the local `dist/` output was built from it.
|
|
79
79
|
|
|
80
|
-
Managed sync and deploy require a clean, committed working tree and use fast-forward safety checks. The CLI does not automatically commit, merge, rebase, force-push, reset, or
|
|
80
|
+
Managed sync and deploy require a clean, committed working tree and use fast-forward safety checks. External sync and deploy require the current branch to track an upstream containing the current clean commit. The CLI does not automatically commit, merge, rebase, force-push, reset, discard files, choose an external remote, or push to an external provider.
|
|
81
81
|
|
|
82
82
|
## External Git and monorepos
|
|
83
83
|
|
|
84
84
|
Bkper-managed source is optional. Existing workflows remain external when:
|
|
85
85
|
|
|
86
|
-
- the app already has a GitHub, GitLab, or other provider remote;
|
|
87
|
-
- `bkper.yaml` is inside a monorepo rather than at the repository root
|
|
88
|
-
- the app is otherwise not rooted in a standalone Git repository.
|
|
86
|
+
- the app already has a GitHub, GitLab, or other provider remote; or
|
|
87
|
+
- `bkper.yaml` is inside a monorepo rather than at the repository root.
|
|
89
88
|
|
|
90
|
-
|
|
89
|
+
The current branch must have a configured upstream containing the commit being synced or deployed. If no upstream is configured, choose the intended provider remote and store the branch explicitly:
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
git push --set-upstream <remote> <branch>
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
The CLI fetches and verifies the upstream without pushing or changing the working tree. Clone external apps from their provider. `bkper app clone` is for Bkper-managed source only.
|
|
91
96
|
|
|
92
97
|
Moving an existing standalone app from an external provider is intentional: the CLI never removes or renames an existing remote. Before changing remotes, make sure every branch and tag you want to preserve is available locally and the current `main` branch is clean and committed. Removing all external remotes and running `bkper app sync` then activates managed source for an eligible app.
|
|
93
98
|
|
|
@@ -95,7 +100,7 @@ The `repoUrl` field in `bkper.yaml` is app-listing metadata. It does not select
|
|
|
95
100
|
|
|
96
101
|
## Next steps
|
|
97
102
|
|
|
98
|
-
- [Your First App](https://bkper.com/docs/
|
|
99
|
-
- [Building & Deploying](https://bkper.com/docs/
|
|
100
|
-
- [CLI](https://bkper.com/docs/
|
|
103
|
+
- [Your First App](https://bkper.com/docs/platform/apps/first-app.md) — Scaffold an app and establish its shared source
|
|
104
|
+
- [Building & Deploying](https://bkper.com/docs/platform/apps/deploying.md) — Build, sync, preview, and deploy explicitly
|
|
105
|
+
- [CLI](https://bkper.com/docs/platform/tools/cli.md) — Install the CLI and review its app-development workflows
|
|
101
106
|
- [Coding Agents](https://bkper.com/docs/ai/coding-agents.md) — Give coding agents the Bkper and project context they need
|