DittoIdentity
public enum DittoIdentity
The various identity configurations that you can use when initializing a
Ditto
instance.
- offlinePlayground: Develop peer-to-peer apps with no cloud connection. This mode offers no security and must only be used for development.
- onlineWithAuthentication: Run Ditto in secure production mode, logging on to Ditto Cloud or on on-premises authentication server. User permissions are centrally managed.
- onlinePlayground: Test a Ditto Cloud app with weak shared token authentication (“Playground mode”). This mode is not secure and must only be used for development.
- sharedKey: A mode where any device is trusted provided they know the secret key. This is a simplistic authentication model normally only suitable for private apps where users and devices are both trusted.
- manual: A manually-provided certificate identity. This accepts a base64-encoded bundle.
-
Develop peer-to-peer apps with no cloud connection. This mode offers no security and must only be used for development. In this mode, any string can be used as the name of the app.
@param appID the name of the app. If you are developing multiple apps, use distinct names to ensure they do not attempt to connect and sync with each other. @param siteID the site ID of the peer.
Declaration
Swift
case offlinePlayground(appID: String? = nil, siteID: UInt64? = nil)
-
Run Ditto in secure production mode, logging on to Ditto Cloud or on on-premises authentication server. User permissions are centrally managed. Sync will not work until a successful login has occurred.
The only required configuration is the application’s UUID, which can be found on the Ditto portal where the app is registered.
By default cloud sync is enabled. This means the SDK will sync to a Big Peer in Ditto’s cloud when an internet connection is available. This is controlled by the
enableCloudSync
parameter. Iftrue
(default), a suitable wss:// URL will be added to theTransportConfig
. To prevent cloud sync, or to specify your own URL later, passfalse
.Authentication requests are handled by Ditto’s cloud by default, configured in the portal at https://portal.ditto.live.
To use a different or on-premises authentication service, pass a custom HTTPS base URL as the
customAuthUrl
parameter.@param appID a UUID identifying this app registration on the Ditto portal, which can be found at https://portal.ditto.live. @param authenticationDelegate a handler for when Ditto requires (re)authentication. @param enableDittoCloudSync if true, auto-configure sync with Ditto Cloud. @param customAuthURL if specified, use a custom authentication service instead of Ditto Cloud.
Declaration
Swift
case onlineWithAuthentication(appID: String, authenticationDelegate: DittoAuthenticationDelegate, enableDittoCloudSync: Bool = true, customAuthURL: URL? = nil)
-
Test a Ditto Cloud app without authentication (“Playground mode”). This mode offers no security and must only be used for development.
@param appID a UUID identifying this app registration on the Ditto portal, which can be found at https://portal.ditto.live. @param token a shared token used to set up the OnlinePlayground session. This token is provided by the Ditto portal when setting up the application. @param enableDittoCloudSync if true, auto-configure sync with Ditto Cloud. @param customAuthURL if specified, use a custom authentication service instead of Ditto Cloud.
Declaration
Swift
case onlinePlayground(appID: String, token: String, enableDittoCloudSync: Bool = true, customAuthURL: URL? = nil)
-
A mode where any device is trusted provided they know the secret key. This is a simplistic authentication model normally only suitable for private apps where users and devices are both trusted. In this mode, any string may be used as the app id.
@param appID a UUID identifying this app registration on the Ditto portal, which can be found at https://portal.ditto.live @param sharedKey a base64-encoded DER private key. Refer to Ditto documentation for details about generating shared keys. @param siteID the site ID of the peer. Ditto data.
Declaration
Swift
case sharedKey(appID: String, sharedKey: String, siteID: UInt64? = nil)
-
A manually-provided certificate identity. This accepts a base64-encoded bundle.
@param certificateConfig a base64 encoded string representation of a certificate bundle.
Declaration
Swift
case manual(certificateConfig: String)