diff --git a/astro.config.mjs b/astro.config.mjs index e7d6ecbd..36fec049 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -21,7 +21,7 @@ export default defineConfig({ AstroPWA(pwa), starlight({ title: 'Capgo', - logo: { src: './logo.svg' }, + // logo: { src: './logo.svg' }, social: { discord: 'https://discord.com/invite/VnYRvBfgA6', github: 'https://github.com/Cap-go', @@ -43,6 +43,10 @@ export default defineConfig({ label: 'Tooling', autogenerate: { directory: 'docs/tooling' }, }, + { + label: 'Web app', + autogenerate: { directory: 'docs/webapp' }, + }, { label: 'Upgrade', autogenerate: { directory: 'docs/upgrade' }, @@ -55,6 +59,7 @@ export default defineConfig({ label: 'Self Hosted', items: [ { label: 'Getting Started', link: '/docs/self-hosted/getting-started' }, + { label: 'Contributing to capgo OSS', link: '/docs/self-hosted/contributing' }, { label: 'Auto Update', autogenerate: { directory: 'docs/self-hosted/Auto Update' } }, { label: 'Local development', diff --git a/public/ab-start.png b/public/ab-start.png new file mode 100644 index 00000000..b7f081b7 Binary files /dev/null and b/public/ab-start.png differ diff --git a/public/account-save.png b/public/account-save.png new file mode 100644 index 00000000..43533578 Binary files /dev/null and b/public/account-save.png differ diff --git a/public/account-updated.png b/public/account-updated.png new file mode 100644 index 00000000..8e13cb74 Binary files /dev/null and b/public/account-updated.png differ diff --git a/public/apikeys-add.png b/public/apikeys-add.png new file mode 100644 index 00000000..622ef090 Binary files /dev/null and b/public/apikeys-add.png differ diff --git a/public/apikeys-regenerate.png b/public/apikeys-regenerate.png new file mode 100644 index 00000000..375c0996 Binary files /dev/null and b/public/apikeys-regenerate.png differ diff --git a/public/apikeys-remove.png b/public/apikeys-remove.png new file mode 100644 index 00000000..d0d569f6 Binary files /dev/null and b/public/apikeys-remove.png differ diff --git a/public/apikeys-select-perm.png b/public/apikeys-select-perm.png new file mode 100644 index 00000000..eda420b4 Binary files /dev/null and b/public/apikeys-select-perm.png differ diff --git a/public/app-multiple-sections.png b/public/app-multiple-sections.png new file mode 100644 index 00000000..0ff60a36 Binary files /dev/null and b/public/app-multiple-sections.png differ diff --git a/public/bundle-change.png b/public/bundle-change.png new file mode 100644 index 00000000..ab8959a9 Binary files /dev/null and b/public/bundle-change.png differ diff --git a/public/bundle-info.png b/public/bundle-info.png new file mode 100644 index 00000000..f76249d7 Binary files /dev/null and b/public/bundle-info.png differ diff --git a/public/bundles.png b/public/bundles.png new file mode 100644 index 00000000..023996d1 Binary files /dev/null and b/public/bundles.png differ diff --git a/public/channel_settings.png b/public/channel_settings.png new file mode 100644 index 00000000..b9d9b570 Binary files /dev/null and b/public/channel_settings.png differ diff --git a/public/channels.png b/public/channels.png new file mode 100644 index 00000000..6d1a62e2 Binary files /dev/null and b/public/channels.png differ diff --git a/public/confirm-make-default.png b/public/confirm-make-default.png new file mode 100644 index 00000000..0278a4c3 Binary files /dev/null and b/public/confirm-make-default.png differ diff --git a/public/create-account.png b/public/create-account.png new file mode 100644 index 00000000..6e9ca8b6 Binary files /dev/null and b/public/create-account.png differ diff --git a/public/device-specific.png b/public/device-specific.png new file mode 100644 index 00000000..4da5263e Binary files /dev/null and b/public/device-specific.png differ diff --git a/public/devices.png b/public/devices.png new file mode 100644 index 00000000..86ea8dbb Binary files /dev/null and b/public/devices.png differ diff --git a/public/download-bundle.png b/public/download-bundle.png new file mode 100644 index 00000000..aba8d9c0 Binary files /dev/null and b/public/download-bundle.png differ diff --git a/public/login.png b/public/login.png new file mode 100644 index 00000000..1cb5d60b Binary files /dev/null and b/public/login.png differ diff --git a/public/logs.png b/public/logs.png new file mode 100644 index 00000000..2bff5c9e Binary files /dev/null and b/public/logs.png differ diff --git a/public/main-app-page.png b/public/main-app-page.png new file mode 100644 index 00000000..97f1d419 Binary files /dev/null and b/public/main-app-page.png differ diff --git a/public/main-page.png b/public/main-page.png new file mode 100644 index 00000000..2d7f5277 Binary files /dev/null and b/public/main-page.png differ diff --git a/public/manage_channel_main.png b/public/manage_channel_main.png new file mode 100644 index 00000000..ca58a568 Binary files /dev/null and b/public/manage_channel_main.png differ diff --git a/public/new_channel_modal.png b/public/new_channel_modal.png new file mode 100644 index 00000000..bcd75d11 Binary files /dev/null and b/public/new_channel_modal.png differ diff --git a/public/overwrite-filter.png b/public/overwrite-filter.png new file mode 100644 index 00000000..80b6477d Binary files /dev/null and b/public/overwrite-filter.png differ diff --git a/public/passwd-error.png b/public/passwd-error.png new file mode 100644 index 00000000..0c81dce2 Binary files /dev/null and b/public/passwd-error.png differ diff --git a/public/post-channel-create.png b/public/post-channel-create.png new file mode 100644 index 00000000..f4a33d9a Binary files /dev/null and b/public/post-channel-create.png differ diff --git a/public/progressive-deploy-finish.png b/public/progressive-deploy-finish.png new file mode 100644 index 00000000..4029bcc2 Binary files /dev/null and b/public/progressive-deploy-finish.png differ diff --git a/public/progressive-deploy-show.png b/public/progressive-deploy-show.png new file mode 100644 index 00000000..1652fb79 Binary files /dev/null and b/public/progressive-deploy-show.png differ diff --git a/public/progressive-no-skip.png b/public/progressive-no-skip.png new file mode 100644 index 00000000..1ef00e4a Binary files /dev/null and b/public/progressive-no-skip.png differ diff --git a/public/progressive-skip.png b/public/progressive-skip.png new file mode 100644 index 00000000..45d87fa0 Binary files /dev/null and b/public/progressive-skip.png differ diff --git a/public/progressive-start.png b/public/progressive-start.png new file mode 100644 index 00000000..22df7032 Binary files /dev/null and b/public/progressive-start.png differ diff --git a/public/settings-go.png b/public/settings-go.png new file mode 100644 index 00000000..9e38d58f Binary files /dev/null and b/public/settings-go.png differ diff --git a/public/update-passwd.png b/public/update-passwd.png new file mode 100644 index 00000000..8206d79d Binary files /dev/null and b/public/update-passwd.png differ diff --git a/src/content/docs/docs/how-to.mdx b/src/content/docs/docs/how-to.mdx index e69954cb..dd1097b9 100644 --- a/src/content/docs/docs/how-to.mdx +++ b/src/content/docs/docs/how-to.mdx @@ -7,7 +7,7 @@ sidebar: import { LinkCard, CardGrid } from '@astrojs/starlight/components'; @@ -39,3 +39,12 @@ import { LinkCard, CardGrid } from '@astrojs/starlight/components'; description="capgo.app" href="https://capgo.app/blog/automatic-build-and-release-with-github-actions/" /> + +## Contributing + + + \ No newline at end of file diff --git a/src/content/docs/docs/index.mdx b/src/content/docs/docs/index.mdx index 173ed52d..da54cc07 100644 --- a/src/content/docs/docs/index.mdx +++ b/src/content/docs/docs/index.mdx @@ -28,7 +28,7 @@ Update OTA (Over the Air) only works for HTML, CSS, and JS changes. If you updat - **Cloud Auto Mode:**
Logic is handled by Capgo backend, providing enhanced security and fine-grained updates. You can deploy updates to specific devices or groups. - **Cloud Manual Mode:**
Update logic is handled by your JS, while Capgo backend handles the update content. - **Self-hosted Auto Mode:**
You need to recreate the update logic in your backend. -- **Self-hosted Manual Mode:**
Update logic is handled by your JS, while the server handles the update content. +- **Self-hosted Manual Mode:**
Update logic is handled by your JS, while the server handles the updates. - **Manual Mode without Backend:**
All logic must be handled by your JS. @@ -73,18 +73,18 @@ The roadmap is managed on [GitHub](https://github.com/orgs/Cap-go/projects/1). The plugin is under the LGPL-3.0 License and the back-end is AGPL-3.0 License. -> 💡 LGPL-3.0 mean if someone modify the code of the plugin, it’s mandatory to publish it, in open-source with same licensing. If you use the code without modification, that doesn’t concern you. See issue below for more details check the link 👇 +> 💡 LGPL-3.0 means if someone modifies the code of the plugin, it’s mandatory to publish it, in open-source with the same licensing. If you use the code without modification, that doesn’t concern you. See the issue below for more details check the link 👇 -> You can include it in your app without worring +> You can include it in your app without worrying ## Last words -If you self host and find this tool useful, please consider supporting my work by becoming a [GitHub sponsor](https://github.com/sponsors/riderx). +If you self-host and find this tool useful, please consider supporting my work by becoming a [GitHub sponsor](https://github.com/sponsors/riderx). I made a bet to open-source all the code I built here instead of keeping it for myself and charging a high price. By opening up instead of fighting and hiding, I believe we can make the world a better place. diff --git a/src/content/docs/docs/plugin/api.md b/src/content/docs/docs/plugin/api.md index 8e414302..78165c57 100644 --- a/src/content/docs/docs/plugin/api.md +++ b/src/content/docs/docs/plugin/api.md @@ -53,9 +53,9 @@ See the Github [Readme](https://github.com/Cap-go/capacitor-updater) for more in notifyAppReady() => Promise<{ bundle: BundleInfo; }> ``` -Notify Capacitor Updater that the current bundle is working (a rollback will occur of this method is not called on every app launch) -By default this method should be called in the first 10 sec after app launch, otherwise a rollback will occur. -Change this behaviour with {@link appReadyTimeout} +Notify Capacitor Updater that the current bundle is working (a rollback will occur if this method is not called on every app launch) +By default this method should be called in the first 10 sec after the app launch, otherwise, a rollback will occur. +Change this behavior with {@link appReadyTimeout} **Returns:** Promise<{ bundle: BundleInfo; }> @@ -102,7 +102,7 @@ Set the next bundle to be used when the app is reloaded. set(options: { id: string; }) => Promise ``` -Set the current bundle and immediately reloads the app. +Set the current bundle and immediately reload the app. | Param | Type | | ------------- | ---------------------------- | @@ -145,7 +145,7 @@ Get all locally downloaded bundles in your app reset(options?: { toLastSuccessful?: boolean | undefined; } | undefined) => Promise ``` -Set the `builtin` bundle (the one sent to Apple store / Google play store ) as current bundle +Set the `builtin` bundle (the one sent to Apple store / Google play store ) as a current bundle | Param | Type | | ------------- | -------------------------------------------- | @@ -229,7 +229,7 @@ Get Latest bundle available from update Url setChannel(options: SetChannelOptions) => Promise ``` -Set Channel for this device, the channel have to allow self assignement to make this work +Set Channel for this device, the channel has to allow self assignment to make this work | Param | Type | Description | | ------------- | --------------------------------------------------------------- | -------------------------------------------------------------------------------- | @@ -297,7 +297,7 @@ Set Channel for this device addListener(eventName: "download", listenerFunc: DownloadChangeListener) => Promise & PluginListenerHandle ``` -Listen for download event in the App, let you know when the download is started, loading and finished, with a percent value +Listen for download event in the App, let you know when the download is started, loading, and finished, with a percent value | Param | Type | | ------------------ | ------------------------------------------------------------------------- | @@ -357,7 +357,7 @@ Listen for availbale update event, usefull when you want to force check every ti addListener(eventName: "downloadComplete", listenerFunc: DownloadCompleteListener) => Promise & PluginListenerHandle ``` -Listen for download event in the App, let you know when the download is started, loading and finished +Listen for download event in the App, let you know when the download is started, loading, and finished | Param | Type | | ------------------ | ----------------------------------------------------------------------------- | @@ -377,7 +377,7 @@ Listen for download event in the App, let you know when the download is started, addListener(eventName: "majorAvailable", listenerFunc: MajorAvailableListener) => Promise & PluginListenerHandle ``` -Listen for Major update event in the App, let you know when major update is blocked by setting disableAutoUpdateBreaking +Listen for Major update event in the App, and let you know when a major update is blocked by setting disableAutoUpdateBreaking | Param | Type | | ------------------ | ------------------------------------------------------------------------- | @@ -397,7 +397,7 @@ Listen for Major update event in the App, let you know when major update is bloc addListener(eventName: "updateFailed", listenerFunc: UpdateFailedListener) => Promise & PluginListenerHandle ``` -Listen for update fail event in the App, let you know when update has fail to install at next app start +Listen for update fail event in the App, and let you know when the update has failed to install at the next app start | Param | Type | | ------------------ | --------------------------------------------------------------------- | @@ -417,7 +417,7 @@ Listen for update fail event in the App, let you know when update has fail to in addListener(eventName: "downloadFailed", listenerFunc: DownloadFailedListener) => Promise & PluginListenerHandle ``` -Listen for download fail event in the App, let you know when download has fail finished +Listen for download fail event in the App, and let you know when the download has failed finished | Param | Type | | ------------------ | ------------------------------------------------------------------------- | @@ -437,7 +437,7 @@ Listen for download fail event in the App, let you know when download has fail f addListener(eventName: "appReloaded", listenerFunc: AppReloadedListener) => Promise & PluginListenerHandle ``` -Listen for reload event in the App, let you know when reload has happend +Listen for reload event in the App, and let you know when the reload has happened | Param | Type | | ------------------ | ------------------------------------------------------------------- | @@ -457,7 +457,7 @@ Listen for reload event in the App, let you know when reload has happend addListener(eventName: "appReady", listenerFunc: AppReadyListener) => Promise & PluginListenerHandle ``` -Listen for app ready event in the App, let you know when app is ready to use +Listen for app ready event in the App, and let you know when the app is ready to use | Param | Type | | ------------------ | ------------------------------------------------------------- | @@ -477,7 +477,7 @@ Listen for app ready event in the App, let you know when app is ready to use getBuiltinVersion() => Promise<{ version: string; }> ``` -Get the native app version or the builtin version if set in config +Get the native app version or the builtin version if set in the config **Returns:** Promise<{ version: string; }> @@ -492,7 +492,7 @@ Get the native app version or the builtin version if set in config getDeviceId() => Promise<{ deviceId: string; }> ``` -Get unique ID used to identify device (sent to auto update server) +Get a unique ID used to identify the device (sent to auto-update server) **Returns:** Promise<{ deviceId: string; }> diff --git a/src/content/docs/docs/plugin/auto-update.md b/src/content/docs/docs/plugin/auto-update.md index 31d3db81..2eefd10d 100644 --- a/src/content/docs/docs/plugin/auto-update.md +++ b/src/content/docs/docs/plugin/auto-update.md @@ -39,15 +39,15 @@ npx cap sync Click on [register](https://capgo.app) to create your account if you don't have one. -The server allows you to manage channel and versions and much more. +The server allows you to manage channels and versions and much more. `autoUpdate` will use data from `capacitor.config` to identify into the Capgo server -> ℹ️ You can use Capgo Cloud without sending your code to our server. If that not allowed by your company. +> ℹ️ You can use Capgo Cloud without sending your code to our server. If that is not allowed by your company. #### Validate version -When auto-update is setup you have to send a signal from JS that your app is alive +When auto-update is set up you have to send a signal from JS that your app is alive This can be done by calling within your app `notifyAppReady`. @@ -61,12 +61,12 @@ CapacitorUpdater.notifyAppReady() #### User flow -* When User open app, it calls the server to check for update, if found it download in the background. +* When the User opens the app, it calls the server to check for updates, if found it is downloaded in the background. * When the user leaves the app, the new version is set as active * When the user opens again, he sees the new app * If `notifyAppReady()` is called, when the user leaves, the past version is deleted. * If not called, when the user leaves, the version is reset to past one and marked as invalid. -* User Continue normal flow until the next update process. +* User continues normal flow until the next update process. #### Dev flow @@ -76,13 +76,13 @@ When you develop new features, be sure to block `autoUpdate`, otherwise you will Be sure to set `autoUpdate` to false in your config before doing that. And then build it again with Xcode or Android studio. -To upload version at each commit setup CI/CD with this guide +To upload the version at each commit setup CI/CD with this guide [Automatic build and release with GitHub actions](https://capgo.app/blog/automatic-build-and-release-with-github-actions) #### Major Available event -When `disableAutoUpdateBreaking` is true, you can listen to event to know when the app refuses to do a major braking update. +When `disableAutoUpdateBreaking` is true, you can listen to the event to know when the app refuses to do a major braking update. ```jsx import { CapacitorUpdater } from '@capgo/capacitor-updater' diff --git a/src/content/docs/docs/plugin/channel-system.md b/src/content/docs/docs/plugin/channel-system.md index 81d896f2..05457cf0 100644 --- a/src/content/docs/docs/plugin/channel-system.md +++ b/src/content/docs/docs/plugin/channel-system.md @@ -4,21 +4,21 @@ sidebar: order: 6 --- -With Capgo and capacitor-updater come a powerful channel system. +With Capgo and capacitor-updater comes a powerful channel system. ## What you can do with channels: -* Associate devices to channel for development, beta test or AB testing -* Use one channel by dev branch and let your team self assign from the phone to test +* Associate devices to channel for development, beta test, or AB testing +* Use one channel by dev branch and let your team self-assign from the phone to test -## You have 3 ways to assign device to channel: +## You have 3 ways to assign a device to a channel: -* Make the channel default, each time a new device asks Capgo for update this one answer +* Make the channel default, each time a new device asks Capgo for an update this one answer * Send the **deviceId** (with [**getId**](/docs/plugin/api#getid) method) to your backend and send from your backend to Capgo the assign order -* Make the channel self assignable (with [**setChannel**](/docs/plugin/api#setchannel) method), and let the device subscribe to channel (with user interaction or not) +* Make the channel self-assignable (with [**setChannel**](/docs/plugin/api#setchannel) method), and let the device subscribe to the channel (with user interaction or not) {% hint style="info" %} -You can also, for specific case, assign a device directly to a bundle, for debug purpose for example. +You can also, for a specific case, assign a device directly to a bundle, for debugging purposes for example. {% endhint %} ## Channel options @@ -27,14 +27,15 @@ You can also, for specific case, assign a device directly to a bundle, for debug Meaning of each: -* **Disable auto downgrade under native** => Don't send an update if the app native version is bigger than the channel one -* **Disable auto upgrade above major** => Don't send an update if the app native version is lower from a Major (**1**.2.3) than the channel one -* **Allow device to self assign** => Let a device use the `setChannel` method to this channel -* **IOS** => Allow iOS devices to download update from this channel -* **Android** => Allow android devices to download update from this channel +* **Disable auto downgrade under native** => Don't send an update if the app's native version is bigger than the channel one +* **Disable auto upgrade above major** => Don't send an update if the app native version is lower then a Major (**1**.2.3) from the channel one +* **Disable auto upgrade above minor** => Don't send an update if the app native version is lower then a minor (1.**2**.3) from the channel one +* **Allow the device to self-assign** => Let a device use the `setChannel` method to this channel +* **IOS** => Allow IOS devices to download updates from this channel +* **Android** => Allow Android devices to download updates from this channel * **Allow Emulator** => Allow emulator to receive update * **Allow development build** => Allow development build to receive update -> Capgo is doing some filtering for you. If you have CI/CD configured to send your version to Google PLAY, Google is running your app each time to 20+ real devices. During the 4 first hours of a new bundle, we block Google data center IP to prevent them to being counted. +> Capgo is doing some filtering for you. If you have CI/CD configured to send your version to Google PLAY, Google is running your app each time to 20+ real devices. During the 4 first hours of a new bundle, we block Google data center IP to prevent them from being counted. -> Capgo don't count emulator and dev build in your usage. Keep in mind after the trial you can't have more than 3% of them, or that will lock your account, until you fix it. +> Capgo don't count emulator and dev build in your usage. Keep in mind after the trial you can't have more than 3% of them, or that will lock your account until you fix it. diff --git a/src/content/docs/docs/plugin/cordova.md b/src/content/docs/docs/plugin/cordova.md index 3ab6bff2..258474e2 100644 --- a/src/content/docs/docs/plugin/cordova.md +++ b/src/content/docs/docs/plugin/cordova.md @@ -6,18 +6,18 @@ sidebar: You are many to wonder if this plugin will be available in Cordova. -I have stared R\&D repository for that, but it's a huge work. +I have started a R\&D repository for that, but it's a huge work. ## Problems I know I can do it. For that, I have to read all the code of Cordova codebase as I did for Capacitor, to understand how to make it work. -The Android version is easier to do since both use java, but iOS needs a full rewrite, Swift it's still not well-supported in Cordova. +The Android version is easier to do since both use Java, but iOS needs a full rewrite because Swift is still not well-supported in Cordova ## Solution We have many solutions to solve that : * [Support me](https://github.com/sponsors/riderx) on GitHub and I can prioritize that. This will need at least 1 month of work. -* Hire me as a Consultant, I used to help big company migrate to capacitor, it usually takes from 10 to 20 days, and the [benefit](https://ionic.io/resources/articles/capacitor-vs-cordova-modern-hybrid-app-development) is huge for the team +* Hire me as a Consultant, I used to help big companies migrate to capacitor, it usually takes from 10 to 20 days, and the [benefit](https://ionic.io/resources/articles/capacitor-vs-cordova-modern-hybrid-app-development) is huge for the team * Wait until this comes out, it is very low on the to-do for now. diff --git a/src/content/docs/docs/plugin/debugging.mdx b/src/content/docs/docs/plugin/debugging.mdx index 87566dc3..33d4a51e 100644 --- a/src/content/docs/docs/plugin/debugging.mdx +++ b/src/content/docs/docs/plugin/debugging.mdx @@ -42,7 +42,7 @@ import { LinkCard, CardGrid } from '@astrojs/starlight/components'; * `SUCCESS`: install bundle done * `ERROR`: install or download failed * `PENDING`: Download done, pending release -* `DELETED`: Bundle deleted still present for stats +* `DELETED`: Bundle deleted, still present for stats * `DOWNLOADING`: Currently downloading a bundle ## Understanding device logs: @@ -55,7 +55,7 @@ There is a debug command for Capgo cloud users. npx @capgo/cli@latest app debug ``` -This will allow you to check all event happening in app and find solution if update don't happen. +This will allow you to check all events happening in the app and find a solution if updates don't happen. ### IOS @@ -75,7 +75,7 @@ to find your logs on Android studio href="https://developer.android.com/studio/debug/am-logcat" /> -### Explainations +### Explanations * `Failed to download from` **=>** same as **download\_fail** * `notifyAppReady was not called, roll back current bundle` => same as as **update\_fail** @@ -84,16 +84,16 @@ to find your logs on Android studio ### iOS -To debug on iOS, you need to dump the app on your computer, you can do it like that : +To debug on iOS, you need to dump the app on your computer, you can do it like this: -Xcode has a built-in feature for inspecting the file system of developer installed apps on an iOS device. +Xcode has a built-in feature for inspecting the file system of developer-installed apps on an iOS device. To achieve this: * Connect your device to your Mac and select Window > Devices in the Xcode menubar. * Select your device in the left pane under the Devices section. -* This will show a list of developer installed apps for that device. -* Select the app you want to inspect and then the select the gear icon near the bottom of the screen. +* This will show a list of developer-installed apps for that device. +* Select the app you want to inspect and then select the gear icon near the bottom of the screen. * Here you can view the current file system by selecting Show Container or download a snapshot of it. Selecting Download Container... will download and export a snapshot of the file system as a .xcappdata file that you can browse through. @@ -104,9 +104,9 @@ Open the App Data folder, and you should now see a few folders like Documents, L ![image](https://user-images.githubusercontent.com/4084527/166708589-8d500351-e140-41c3-bea2-a037fe35243e.png) -Then you will find version in 2 folders: +Then you will find a version in 2 folders: -`library/NoCloud/ionic_built_snapshots` who is necessary after app reboot +`library/NoCloud/ionic_built_snapshots` is necessary after the app reboot and `documents/versions` for hot reload @@ -120,10 +120,10 @@ To debug on Android, you need to access the device from Android Studio: ![image](https://user-images.githubusercontent.com/4084527/166708728-8f96fc73-5d90-426f-8d27-301697347a5f.png) -Then Find the `versions` folder to see all the folder versions +Then Find the `versions` folder to see all the versions :::tip[Did you know?] -On android all version are stored in one folder, unlike IOS where it has to be duplicated in two location. +On Android, all versions are stored in one folder, unlike IOS where it has to be duplicated in two locations. ::: ## Understand ios production crash diff --git a/src/content/docs/docs/plugin/force-update.md b/src/content/docs/docs/plugin/force-update.md index 129c5678..a86fb3eb 100644 --- a/src/content/docs/docs/plugin/force-update.md +++ b/src/content/docs/docs/plugin/force-update.md @@ -17,7 +17,7 @@ You have 3 options to force your user to update: ## Direct update -You can force update to happen at every app start by setting `directUpdate` to `true`: +You can force an update to happen at every app start by setting `directUpdate` to `true`: ```tsx // capacitor.config.json @@ -32,7 +32,7 @@ You can force update to happen at every app start by setting `directUpdate` to ` } ``` -And then in your app you should hide the splash until receive the event `appReady`: +And then in your app, you should hide the splash until receive the event `appReady`: ```js import { CapacitorUpdater } from '@capgo/capacitor-updater' diff --git a/src/content/docs/docs/plugin/settings.md b/src/content/docs/docs/plugin/settings.md index df1d9101..d673dae6 100644 --- a/src/content/docs/docs/plugin/settings.md +++ b/src/content/docs/docs/plugin/settings.md @@ -1,6 +1,6 @@ --- title: "Settings" -description: "All available setting for Capacitor Updater" +description: "All available settings for Capacitor Updater" sidebar: order: 8 --- @@ -51,7 +51,7 @@ Default: `20` (20 second) ## `autoDeleteFailed` : -> Configure whether the plugin should use automatically delete failed bundles. +> Configure whether the plugin should automatically delete failed bundles. Only available for Android and iOS. @@ -156,7 +156,7 @@ Default: `https://api.capgo.app/stats` ## `privateKey` : -> Configure the private key for end to end live update encryption. +> Configure the private key for end-to-end live update encryption. Only available for Android and iOS. @@ -179,7 +179,7 @@ Default: `undefined` ## `directUpdate` : -> Make the plugin direct install the update when the app what just updated/installed. Only for autoUpdate mode. +> Make the plugin directly install the update when the app what just updated/installed. Only for autoUpdate mode. Only available for Android and iOS. diff --git a/src/content/docs/docs/self-hosted/Auto Update/index.mdx b/src/content/docs/docs/self-hosted/Auto Update/index.mdx index 9cb878ed..2822619b 100644 --- a/src/content/docs/docs/self-hosted/Auto Update/index.mdx +++ b/src/content/docs/docs/self-hosted/Auto Update/index.mdx @@ -6,23 +6,23 @@ sidebar: import { LinkCard, CardGrid } from '@astrojs/starlight/components'; -This documentation will explain how to run your own auto-update server. +This documentation will explain how to run your auto-update server. ## Before start -If you use this work on your own, I couldn't suggest you more to support my work thought [this](https://github.com/sponsors/riderx). +If you use this work on your own, I couldn't suggest more to support my work through [this](https://github.com/sponsors/riderx). I made a big bet to open source all the precious code I built here. I could have kept it for myself and put a high ticket price. -Furthermore, I want to focus on Capgo tooling, and make it an open and transparent business. +Furthermore, I want to focus on Capgo tooling and make it an open and transparent business. Likewise, I do think it would make our world a better place by opening instead of fighting and hiding. -But to make it possible, it is necessary for all of us to do our part, including you 🥹. +But to make it possible, all of us must do our part, including you 🥹. -Capgo offer can't suit you, then put your price and back a bootstrapped Maker [HERE](https://github.com/sponsors/riderx) on your terms. +If capgo offers can't suit you, then put your price and back a bootstrapped Maker [HERE](https://github.com/sponsors/riderx) on your terms. ## Quick installs @@ -67,7 +67,7 @@ interface AppInfos { } ``` -The server API should respond, in JSON, to the capacitor-updater plugin. With this data if update is necessary: +The server API should respond, in JSON, to the capacitor-updater plugin. With this data if an update is necessary: ```json { @@ -76,13 +76,13 @@ The server API should respond, in JSON, to the capacitor-updater plugin. With th } ``` -In Auto-update the server should do the work of compares the version and return the right one, if the URL key is present, the plugin starts the download process. +In Auto-update the server should do the work of comparing the version and return the right one, if the URL key is present, the plugin starts the download process. If you add "message" and "error" key, the version will not be set, and the message will be displayed in logs instead. `version` key should be in [`semver`](https://semver.org/) format. -The zip should have `index.html` a file at the root, or only one folder at the root with `index.html` inside. +The zip should have `index.html` as a file at the root, or only one folder at the root with `index.html` inside. You can use the command of the CLI to zip your bundle: diff --git a/src/content/docs/docs/self-hosted/Auto Update/stats-endpoint.md b/src/content/docs/docs/self-hosted/Auto Update/stats-endpoint.md index ed5222ab..1b2a0ec1 100644 --- a/src/content/docs/docs/self-hosted/Auto Update/stats-endpoint.md +++ b/src/content/docs/docs/self-hosted/Auto Update/stats-endpoint.md @@ -4,7 +4,7 @@ sidebar: order: 2 --- -Here is an example of code in JavaScript to save stats of the plugin +Here is an example of code in JavaScript to save the stats of the plugin ```typescript interface AppInfos { @@ -60,7 +60,7 @@ export const handler: Handler = async (event) => { version_name, version_build, plugin_version) - // save it in your database + // Save it in your database return { status: 'ok' } } ``` diff --git a/src/content/docs/docs/self-hosted/contributing.mdx b/src/content/docs/docs/self-hosted/contributing.mdx new file mode 100644 index 00000000..67c5d170 --- /dev/null +++ b/src/content/docs/docs/self-hosted/contributing.mdx @@ -0,0 +1,28 @@ +--- +title: "Contributing to capgo open source projects" +sidebar: + order: 2 +--- + +## Why contribute? + +First of all, thank you for considering contributing to capgo open source projects! It's people like you that make capgo open source projects such great tools. + +Here are some reasons why you should contribute: + +* Contributing to capgo open source projects is a great way to earn some money from the [countless bounties](https://console.algora.io/org/Capgo) that are offered by the capgo team +* Contributing to capgo open source projects is a great way to add a feature you would like to see +* Contributing to capgo open source projects is a great way to fix a bug you encountered +* [Capgo main's license](https://github.com/Cap-go/capgo/blob/main/LICENSE) requires you to open source any changes you make to it. By contributing your code, you get to keep your changes open source and let others use it + +## How to contribute + + * First of all, you need to fork the repository you want to contribute to + * Second of all you need to commit and push your changes to that repository + * Lastly, you need to open a pull request + * That's it! Now you just need to wait for the capgo team to review your PR + +## Further documents to read + + * Capgo's [CONTRIBUTING.MD](https://github.com/Cap-go/capgo/blob/main/CONTRIBUTING.md) + * Capgo's [BOUNTY.md](https://github.com/Cap-go/capgo/blob/main/BOUNTY.md) \ No newline at end of file diff --git a/src/content/docs/docs/tooling/sandbox-app.md b/src/content/docs/docs/tooling/sandbox-app.md index 0b41d818..74eb02bd 100644 --- a/src/content/docs/docs/tooling/sandbox-app.md +++ b/src/content/docs/docs/tooling/sandbox-app.md @@ -75,7 +75,7 @@ Shake your phone at any time to see the menu below * [Status Bar](https://github.com/ionic-team/capacitor-plugins/tree/main/status-bar) - Provides methods for configuring the style of the Status Bar, along with showing or hiding it. * [Storage](https://github.com/ionic-team/capacitor-plugins/tree/main/preferences)(preferences) - Provides a simple key/value persistent store for lightweight data. * [Text Zoom](https://github.com/ionic-team/capacitor-plugins/tree/main/text-zoom) - Provides the ability to change Web View text size for visual accessibility. -* [Toast](https://github.com/ionic-team/capacitor-plugins/tree/main/toast) - Provides a notification pop up for displaying important information to a user. Just like real toast! +* [Toast](https://github.com/ionic-team/capacitor-plugins/tree/main/toast) - Provides a notification pop-up for displaying important information to a user. Just like real toast! #### Some unofficial plugins are installed and preconfigured too @@ -86,20 +86,20 @@ Shake your phone at any time to see the menu below * [capacitor-flash](https://github.com/riderx/capacitor-flash) - Switch the Flashlight / Torch of your device. * [capacitor-mute](https://github.com/riderx/capacitor-mute) - Detect if the mute switch is enabled/disabled on a device * [capacitor-native-audio](https://github.com/capacitor-community/native-audio) - Capacitor plugin for native audio engine. -* [capacitor-native-biometric](https://github.com/epicshaggy/capacitor-native-biometric) - Use biometrics confirm device owner presence or authenticate users. +* [capacitor-native-biometric](https://github.com/epicshaggy/capacitor-native-biometric) - Use biometrics to confirm device owner presence or authenticate users. * [capacitor-purchases](https://github.com/riderx/capacitor-purchases) - In-app Subscriptions Made Easy with RevenueCat SDK * [capacitor-rate-app](https://github.com/Nodonisko/capacitor-rate-app) - Let users rate your app using native review app dialog for both Android and iOS. * [capacitor-screen-recorder](https://github.com/TeamMaestro/capacitor-video-recorder) - A video recording plugin for Capacitor that allows applications to use the native camera and microphone and display the recording interface either below or above their application. * [capacitor-updater](https://github.com/riderx/capacitor-updater) - OTA update for capacitor -> ⚠️ All other Native API you use who are not in this list will raise error. +> ⚠️ All other Native APIs you use that are not in this list will raise errors. > 💡 If you need a capacitor plugin to test your app open issue in [GitHub](https://github.com/Cap-go/capgo) I will add it to the next build. -> ⛔ Cordova plugin are not supported in sandbox test app +> ⛔ Cordova plugins are not supported in the sandbox test app ## Troubleshooting -If your app uses module, there are not installed in the sandbox app, your app may crash. If that happens, you could be in a situation where you cannot go out back to the app.\ -If that happens, uninstall the sandbox app and install again.\ +If your app uses a module, there are not installed in the sandbox app, your app may crash. If that happens, you could be in a situation where you cannot go out back to the app.\ +If that happens, uninstall the sandbox app and install it again.\ I am searching better solution for the future. diff --git a/src/content/docs/docs/upgrade/from-v2-to-v3.md b/src/content/docs/docs/upgrade/from-v2-to-v3.md index dabf6131..2eb1841f 100644 --- a/src/content/docs/docs/upgrade/from-v2-to-v3.md +++ b/src/content/docs/docs/upgrade/from-v2-to-v3.md @@ -38,11 +38,11 @@ to only let this: } ``` -> ⚠️ If you were using your server, with `autoUpdateURL`, I will upgrade this guide soon for you. Meanwhile, take a look at the new upload option `external` who allows you to send only the link of your zip, not the code in Capgo cloud. This has been made for companies with strict privacy policy. In external mode, the code will never land to Capgo server, we just store the URL and send it to device, they will direct download it. In the standard way, the code is zipped and stored in our server, but we will never open it or use it either. +> ⚠️ If you were using your server, with `autoUpdateURL`, I will upgrade this guide soon for you. Meanwhile, take a look at the new upload option `external` which allows you to send only the link of your zip, not the code in Capgo cloud. This has been made for companies with strict privacy policies. In external mode, the code will never land on Capgo server, we just store the URL and send it to the device, which will directly download it. In the standard way, the code is zipped and stored in our server, but we will never open it or use it either. ## What change -All configuration become server side for auto-update, to give you more control on how you send an update to users. +All configurations become server-side for auto-update, to give you more control on how you send an update to users. That allows us to revert, AB test, partial deploy or even deploy just to one user! These settings are added back to the web interface: @@ -53,7 +53,7 @@ That allows us to revert, AB test, partial deploy or even deploy just to one use This will also remove the need to update often the plugin, most updates will be done server side, and you will get it without any change in your side. -> ⚠️ Reset when update becomes default, so if you prefer not to remove all download versions when update from the store, do this: +> ⚠️ Reset when an update becomes the default, so if you prefer not to remove all download versions when updating from the store, do this: ```json { diff --git a/src/content/docs/docs/v3/plugin-api.md b/src/content/docs/docs/v3/plugin-api.md index d09dfd81..49438219 100644 --- a/src/content/docs/docs/v3/plugin-api.md +++ b/src/content/docs/docs/v3/plugin-api.md @@ -226,7 +226,7 @@ Listen for Major update events in the App, let you know when a major update is b addListener(eventName: 'updateAvailable', listenerFunc: UpdateAvailableListener) => Promise & PluginListenerHandle ``` -Listen for update event in the App, let you know when the update is ready to install at next app start +Listen for update event in the App, and let you know when the update update is ready to install at the next app start | Param | Type | | ------------------ | ------------------------- | @@ -308,7 +308,7 @@ removeAllListeners() => Promise After install capacitor-updater to your project, you can configure some behavior: -* `resetWhenUpdate` set it false to disable the reset version when update +* `resetWhenUpdate` set it false to disable the reset version when updating * `autoUpdateUrl` the target URL to get updates * `autoUpdate` true or false depend on if you want manual or auto * `statsUrl` the target URL for stats, set it to "" to disable stats diff --git a/src/content/docs/docs/webapp/api-keys.mdx b/src/content/docs/docs/webapp/api-keys.mdx new file mode 100644 index 00000000..5844bdd4 --- /dev/null +++ b/src/content/docs/docs/webapp/api-keys.mdx @@ -0,0 +1,44 @@ +--- +title: "Managing api keys" +sidebar: + order: 3 +--- + + +## What can I do with the api keys? + +An API key can be regenerated, or removed or a new one can be added. + +## How to see all api keys? + +You need to go to [API keys page](https://web.capgo.app/dashboard/apikeys) and there you will see all your api keys. + +## How to add a new api key? + +To add a new API key click on the little plus button + +
+ +and then select the permissions you want to give to the new API key. You can select: + + - Read - the API key will be able to read all the data + - Upload - the API key will be able to upload new versions from the CLI and read + - All - The API key will be able to do everything + +
+ +## How to remove an api key? + +To remove an API key click on the little trash button. + +
+ +And then confirm removing the API key. + +## How to regenerate an api key? + +To regenerate an API key click on the little refresh button. + +
+ +And then confirm regenerating the API key. \ No newline at end of file diff --git a/src/content/docs/docs/webapp/bundles.mdx b/src/content/docs/docs/webapp/bundles.mdx new file mode 100644 index 00000000..44b03a01 --- /dev/null +++ b/src/content/docs/docs/webapp/bundles.mdx @@ -0,0 +1,41 @@ +--- +title: "Bundles" +sidebar: + order: 7 +--- + +## Show all bundles + +First, let's take a look at the bundles page. You can access it by [clicking on your app](/docs/webapp/main-page) and then [clicking on the bundles tab](/docs/webapp/main-app-page). + +
+ +## Managing a specific bundle + +Once you see the list of all bundles click on the one you want to manage. After you do that you should see something like this: + +
+ +Let's go through all of the elements on this page. + +--- + +First you can see a `Channel`. This lets you know which channel this bundle is for. You can change the channel by clicking on it. +Once you click on it you should see something like this: + +
+ +`Set bundle to channel` will allow you to link this bundle as the default for any channel.\ +`Open channel` will open the channel page for the channel this bundle is for.\ +`Unlink bundle from channel` will unlink this bundle from the channel it is for. +(**WARNING**: If the bundle is linked to more than 1 channel then you will not be given an option on which channel to unlink) + +--- + +Next, you can see the `Size`. If you click on it you will be able to download this bundle. +It should look something like this: +
+ +--- + +Lastly, there is the `Devices` section. You can all devices using this version there. \ No newline at end of file diff --git a/src/content/docs/docs/webapp/channels.mdx b/src/content/docs/docs/webapp/channels.mdx new file mode 100644 index 00000000..5c2354eb --- /dev/null +++ b/src/content/docs/docs/webapp/channels.mdx @@ -0,0 +1,118 @@ +--- +title: "Channels" +sidebar: + order: 6 +--- + +## Managing channels + +First, let's take a look at the channels page. You can access it by [clicking on your app](/docs/webapp/main-page) and then [clicking on the channels tab](/docs/webapp/main-app-page). + + +
+ +## Creating a channel + +As you can see, there exists a plus button in the lower right corner. (`1` in the image) Clicking on it will open a modal where you can create a new channel. +
+ +Then after you click on `Add` a new channel should appear in the list. +
+ +## What does misconfigured mean? +Sometimes the configuration of a channel is not valid. In that case, you will get a big warning and the `Misconfigured` column will say `Yes` for one or more of the channels. +You can learn more about it [here](/docs/tooling/cli#disable-updates-strategy) + +## Deleting a channel + +Deleting a channel is straight forward. Just click on the trash icon and confirm the deletion. (`2` in the image) + +## Managing a channel + +Clicking on the channel name will open a modal where you can manage the channel. (`3` in the image) +This page should look something like this: + +
+ +Let's go through the different sections. + +First the `Bundle number` (`1` in the image). This is the current version for that channel. When asked to serve an update this channel will always attempt to respond with that version.* [^1] +Clicking on it should take you to the [bundle](/docs/webapp/bundles/) page. + +Second the `Shared to` (`2` in the image) page. I recommend against ever using this. A new and better system is in the works. + +Now the forced devices (`3` in the image). This is a list of devices that will always get updates from this channel. This is useful for testing purposes. You can add force a device to a channel from the [devices](/docs/webapp/devices/) page. + +Lastly the settings (`4` in the image). This is where you can manage how the channels behave. +After you click on it you should see something like this: + +
+ +The list of settings is long, but I will do my best to explain them all. + +--- +First the `Default channel` **THIS IS PROPABLY THE MOST IMPORTANT ONE**.\ +If a channel is marked as default, then it will be used as the default channel for all new devices.\ +In different terms: If you have a new user capgo will try to serve him the latest version of this default channel. +Only 1 channel can be set to default at a time. If you try to break this rule you will be asked to confirm your action. + +
+ +After you confirm the old default channel will be unmarked as default and the new one will be marked as default. + +--- +Second the `IOS` setting. This is relatively simple. If this is false then IOS devices will not be allowed to download updates from this channel. + +Third is the `Android` setting. This is similar to `IOS`. If this is false then Android devices will not be allowed to download updates from this channel. + +Fourth is the `Disable auto downgrade under native` setting. If this is true then it will be impossible to downgrade from a native version. This means that if you have uploaded a `1.2.0` version to the app store or play store and try to set the channel version to `1.1.0` then the update (downgrade) will fail. + +Fifth is the `Disable auto update`. This setting is quite complex, and you can learn more about it [here](/docs/tooling/cli#disable-updates-strategy) + +As for `Allow develoment build`. If this is true then development builds will be allowed to download updates from this channel. If not then any update request that has the `prod` set to false will be rejected. This is mostly useful for testing purposes. + +Seventh is the `Allow Emulators`. If this is false then cagpo will disallow any update request that comes from an emulator. This is mostly useful for testing purposes. + +Eight is the `Allow devices to self associate`. If this is true then the [setChannel](docs/plugin/api/#setchannel) method will be available. If this is set to false and you try to call the [setChannel](docs/plugin/api/#setchannel) method with this channel then the call will fail. + +--- + +Next is the AB testing. This is a VERY complex setting. +Let's start at the beginning. After enabling this setting you should see 2 versions instead of 1. + +
+ +The idea is that after you upload the bundle to capgo cloud you will be able to select which version you want to serve to which percentage of users. +For example, you could say that you want only 30% of your users to receive the new update. In that case, you would set the `A` version to the old version and the `B` version to the new version (the one thay you only want 30% of users to receive) +Next, you would set the `Percentage of users recving secondary version` to `30%`. + +:::danger +⚠️ Sending a new version from the CLI into the `production` channel will set `version A` to it. If you want to change it you will have to do it manually from the webapp. +::: + +--- + +The last setting is the `Enable progressive deploy`. This is similar to AB testing, however, the `Percentage of users recving secondary version` will be increased every 10 minutes by 10% until it reaches 100%. +Progressive deploy is exclusive to AB testing. You can't have both enabled at the same time. + +
+ +First, do not worry about the `Progressive deploy status failed` message. It is just a warning that will go away once you deploy the first version. + +To start a new progressive deploy go to the [specific bundle page](/docs/webapp/bundles/) and click on `Channel`. Then click on the channel that has progressive deploy enabled. You should see something like this: + +
+ +If you skip progressive deploy it should look like this: +
+ +If you do not skip progressive deploy it should look like this: + +
+ +After the progressive deploy finishes you should see something like this: + +
+ +Footnotes: +[^1]: \*: There are **A LOT** of exceptions to this but regardless that is the main version for the channel. \ No newline at end of file diff --git a/src/content/docs/docs/webapp/devices.mdx b/src/content/docs/docs/webapp/devices.mdx new file mode 100644 index 00000000..193d774d --- /dev/null +++ b/src/content/docs/docs/webapp/devices.mdx @@ -0,0 +1,28 @@ +--- +title: "Devices" +sidebar: + order: 7 +--- + +## Show the list of all devices +First, let's take a look at the devices page. You can access it by [clicking on your app](/docs/webapp/main-page) and then [clicking on the devices tab](/docs/webapp/main-app-page). + +
+ +## Show only developer devices +You might want to show only the overwritten devices (Devices that have a [custom channel](docs/plugin/api/#setchannel) or a custom version) +To do that click on `Filters` and then on `Override`. It should look something like this: + +
+ +## Configuring a device + +To configure a specific device click on it in the table and then you should see something like this: + +
+ +First the `Custom ID`. This is not really that useful, and right now it does nothing. You can ignore it. + +Next the force version. If this is set then this device will **ALWAYS** receive this version. It takes precedence over the channel. + +Lastly the custom channel. If this is set then this device will not care about the public (default) channel and just use this one. \ No newline at end of file diff --git a/src/content/docs/docs/webapp/index.mdx b/src/content/docs/docs/webapp/index.mdx new file mode 100644 index 00000000..b582f470 --- /dev/null +++ b/src/content/docs/docs/webapp/index.mdx @@ -0,0 +1,23 @@ +--- +title: "Introduction" +sidebar: + order: 1 +--- + +## What is this? + +Cagpo has an extensive webapp to help you manage your projects. This webapp is built with Vue.js and is open source. You can find the source code on [GitHub](https://github.com/Cap-go/capgo/tree/main/src) \ +The webapp is avalible [here](https://web.capgo.app). \ +This webapp allows you to [manage channels](/docs/webapp/channels/), [manage versions](/docs/webapp/bundles/), [manage devices](/docs/webapp/devices/), [inspect logs](/docs/webapp/logs/), [manage billing](/docs/webapp/settings/) and [manage your account](/docs/webapp/settings/). + +## How do I use it? + +First, you need to create an account or log in. This is relatively simple and can be done by clicking the `Log in` button in the center of the screen. After you have logged in you will be redirected to the dashboard. This is the main page of the webapp. From here you can navigate to all the other pages. + +
+ +## Creating an account + +You have to click on the `Create a free account` in the bottom part of the login form. From then it will be as simple as filling a form and following the instructions. + +
\ No newline at end of file diff --git a/src/content/docs/docs/webapp/logs.mdx b/src/content/docs/docs/webapp/logs.mdx new file mode 100644 index 00000000..ed6107d9 --- /dev/null +++ b/src/content/docs/docs/webapp/logs.mdx @@ -0,0 +1,15 @@ +--- +title: "Logs" +sidebar: + order: 8 +--- + +## Show all logs +First, let's take a look at the logs page. You can access it by [clicking on your app](/docs/webapp/main-page) and then [clicking on the updates tab](/docs/webapp/main-app-page). +From there you should see a page like this: + +
+ +## Getting more details about a log + +If you click on a log it will take you to a [devices' page](/docs/webapp/devices/) \ No newline at end of file diff --git a/src/content/docs/docs/webapp/main-app-page.mdx b/src/content/docs/docs/webapp/main-app-page.mdx new file mode 100644 index 00000000..043834b2 --- /dev/null +++ b/src/content/docs/docs/webapp/main-app-page.mdx @@ -0,0 +1,24 @@ +--- +title: "Main app page" +sidebar: + order: 5 +--- + +## What does the main page shows? + +First, let's take a look at the main page of the app: + +
+ +Let's take a closer look at this. + +First the stats. The stats are beginning reworked thus they cannot be documented at this time. We will add a stats section when they are fully operational. + +Second, let's take a look at all the available menus and what they do. + +
+ +The first button will take you to the [channels](/docs/webapp/channels/) page. You can create/delete/configure the app's channels there.\ +The second button will take you to the [bundles](/docs/webapp/bundles/) page. You can see all of the app's versions there. +The second button will take you to the [device](/docs/webapp/devices/) page. You can see all of the devices there. You also can set device's specific overwrites from there. +The second button will take you to the [updates](/docs/webapp/logs/) page. You can see the detailed stats (logs) and errors that your app is experiencing from there. \ No newline at end of file diff --git a/src/content/docs/docs/webapp/main-page.mdx b/src/content/docs/docs/webapp/main-page.mdx new file mode 100644 index 00000000..8a17c8b0 --- /dev/null +++ b/src/content/docs/docs/webapp/main-page.mdx @@ -0,0 +1,20 @@ +--- +title: "Main page" +sidebar: + order: 2 +--- + +## What does the main page shows? + +First, let's take a look at the main page: +
+ +Let's start at the beginning. The first thing you see is the **stats**. It contains app-specific statistics. Those updates depend on the usage of the app + +The second thing you see is the list of all available apps. This will change depending on how many apps have you created. You can click on each app to see more details about it. + +The third thing you see is the **API keys** button. This button will take you to the [API keys](/docs/webapp/api-keys/) page. + +The next thing you see is the **test Capgo** button. This button will change depending on your first and second name and it will take you to the [settings](/docs/webapp/settings/) or support page. + +Lastly, you see a button to add another app. This button will take you to a page where you can add a new app to capgo. \ No newline at end of file diff --git a/src/content/docs/docs/webapp/settings.mdx b/src/content/docs/docs/webapp/settings.mdx new file mode 100644 index 00000000..1d3536f4 --- /dev/null +++ b/src/content/docs/docs/webapp/settings.mdx @@ -0,0 +1,31 @@ +--- +title: "Settings" +sidebar: + order: 4 +--- + +## How to get to the settings page + +First click on **FIRS_NAME SECOND_NAME**. In my case this is **test Capgo**. In your case, this will be your first name and then your second name. Then click on **Settings**. + +
+ +## Changing the user settings + +To change any user setting you can just fill out the form in the account and then click on **Update**. + +
+ +Then a confirmation should appear. + +
+ +## Changing the password + +To change the password go to the settings page and click on **Password**. Then fill in the form and click on **Update**. + +
+ +If the password does not follow the capgo password security rules then you will get an error message. + +
diff --git a/src/content/plugins-tutorials/capacitor-updater.md b/src/content/plugins-tutorials/capacitor-updater.md index 6c374162..a849f144 100644 --- a/src/content/plugins-tutorials/capacitor-updater.md +++ b/src/content/plugins-tutorials/capacitor-updater.md @@ -85,7 +85,7 @@ If you prefer to manually control the update process, follow these steps: await CapacitorUpdater.set(version) ``` - Replace the `url` with the URL of your update distribution zip file. + Replace the `url` with the URL of your updated distribution zip file. 5. Failed updates will automatically roll back to the last successful version.