feat: add alternative server for purposes of switching to API v1 (#571)

* feat: add alternative server for purposes of switching to API v1

* fix: naming of next version sync server host variable
This commit is contained in:
Karol Sójko
2021-06-07 15:19:26 +02:00
committed by GitHub
parent 56121933b4
commit 8dde06b93b
8 changed files with 21 additions and 8 deletions

View File

@@ -11,6 +11,7 @@ APP_HOST=http://localhost:3001
EXTENSIONS_MANAGER_LOCATION=extensions/extensions-manager/dist/index.html
BATCH_MANAGER_LOCATION=extensions/batch-manager/dist/index.min.html
SF_DEFAULT_SERVER=http://localhost:3000
SF_NEXT_VERSION_SERVER=http://localhost:3000
# Development options
DEV_DEFAULT_SYNC_SERVER=https://sync.standardnotes.org

View File

@@ -108,10 +108,13 @@ The web app makes use of two optional native extensions, which, when running the
BATCH_MANAGER_LOCATION=extensions/batch-manager/dist/index.min.html
```
You can also set the `SF_DEFAULT_SERVER` environment variable to set the default server for login and registration.
You can also set the `SF_DEFAULT_SERVER` and `SF_NEXT_VERSION_SERVER` environment variables to set the default servers for login and registration.
> **Note:** SF_NEXT_VERSION_SERVER can point to the same server. It is used for gradual upgrade of API versions.
```
SF_DEFAULT_SERVER=https://sync.myserver
SF_NEXT_VERSION_SERVER=https://sync.myserver
```
---

View File

@@ -88,7 +88,8 @@ function reloadHiddenFirefoxTab(): boolean {
const startApplication: StartApplication = async function startApplication(
defaultSyncServerHost: string,
bridge: Bridge
bridge: Bridge,
nextVersionSyncServerHost: string,
) {
if (reloadHiddenFirefoxTab()) {
return;
@@ -105,6 +106,7 @@ const startApplication: StartApplication = async function startApplication(
.config(configRoutes)
.constant('bridge', bridge)
.constant('defaultSyncServerHost', defaultSyncServerHost)
.constant('nextVersionSyncServerHost', nextVersionSyncServerHost)
.constant('appVersion', bridge.appVersion);
// Controllers
@@ -186,7 +188,8 @@ const startApplication: StartApplication = async function startApplication(
if (__WEB__) {
startApplication(
(window as any)._default_sync_server,
new BrowserBridge(__VERSION__)
new BrowserBridge(__VERSION__),
(window as any)._next_version_sync_server
);
} else {
(window as any).startApplication = startApplication;

View File

@@ -2,5 +2,6 @@ import { Bridge } from "./services/bridge";
export type StartApplication = (
defaultSyncServerHost: string,
bridge: Bridge
bridge: Bridge,
nextVersionSyncServerHost: string
) => Promise<void>;

View File

@@ -53,6 +53,7 @@ export class WebApplication extends SNApplication {
scope: angular.IScope,
defaultSyncServerHost: string,
public bridge: Bridge,
nextVersionSyncServerHost: string,
) {
super(
bridge.environment,
@@ -62,7 +63,8 @@ export class WebApplication extends SNApplication {
new AlertService(),
identifier,
[],
defaultSyncServerHost
defaultSyncServerHost,
nextVersionSyncServerHost,
);
this.$compile = $compile;
this.scope = scope;

View File

@@ -28,7 +28,8 @@ export class ApplicationGroup extends SNApplicationGroup {
$rootScope: ng.IRootScopeService,
$timeout: ng.ITimeoutService,
private defaultSyncServerHost: string,
private bridge: Bridge
private bridge: Bridge,
private nextVersionSyncServerHost: string,
) {
super(new WebDeviceInterface($timeout, bridge));
this.$compile = $compile;
@@ -62,7 +63,8 @@ export class ApplicationGroup extends SNApplicationGroup {
this.$compile,
scope,
this.defaultSyncServerHost,
this.bridge
this.bridge,
this.nextVersionSyncServerHost,
);
const appState = new AppState(
this.$rootScope,

View File

@@ -30,6 +30,7 @@
<script>
window._default_sync_server = "<%= ENV['SF_DEFAULT_SERVER'] %>";
window._next_version_sync_server = "<%= ENV['SF_NEXT_VERSION_SERVER'] %>";
window._extensions_manager_location = "<%= ENV['EXTENSIONS_MANAGER_LOCATION'] %>";
window._batch_manager_location = "<%= ENV['BATCH_MANAGER_LOCATION'] %>";
window._bugsnag_api_key = "<%= ENV['BUGSNAG_API_KEY'] %>";

View File

@@ -71,7 +71,7 @@
"@reach/checkbox": "^0.13.2",
"@reach/dialog": "^0.13.0",
"@standardnotes/sncrypto-web": "1.2.10",
"@standardnotes/snjs": "2.4.2",
"@standardnotes/snjs": "2.5.0",
"mobx": "^6.1.6",
"mobx-react-lite": "^3.2.0",
"preact": "^10.5.12"