diff --git a/CHANGELOG.md b/CHANGELOG.md index dfb4d26f..88b4370c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Change Log All notable changes to this project will be documented in this file. +#### 3.1.0 Releases + +- `3.1.0` Releases - [3.1.0](#310) + #### 3.0.0 Releases - `3.0.0` Releases - [3.0.0](#300) @@ -85,6 +89,33 @@ All notable changes to this project will be documented in this file. - `0.9.137` Releases - [0.9.137](#09137) --- +## [3.1.0](https://github.com/webex/webex-ios-sdk/releases/tag/3.1.0) +Released on 2021-08-16 +#### Added +- Added FedRAMP support +- Added new API `OAuthAuthenticator.getAuthorizationUrl(:completionHandler)` to get a valid authorization URL to initate OAuth +- Added new API `OAuthAuthenticator.authorize(:oauthCode:completionHandler)` to authorize with auth code from OAuth first leg +- Added new API `Phone.getServiceUrl(:ServiceUrlType)` API +- Added back scope argument to `OAuthAuthenticator`. This serves to add additional scopes that the developer might want the access token to have. Now developers have to provide `spark:all` scope always to this argument +- Added new API `Call.isSpaceMeeting` to denote the call is space backed meeting type +- Added new API `Call.isSelfCreator` to denote if self is the initiator of the call +- Added new API `Call.hasAnyoneJoined`to denote if anyone joined the meeting, excluding self +- Added new API `Call.isPmr` to denote the call is a personal meeting room +- Added new API `Call.isMeeting` to differentiate between meetings and calls +- Added new API `Call.isScheduledMeeting` to differentiate between scheduled meetings and ad-hoc meetings +- Added new enum `Base64EncodeError` +- Added new enum `TokenLoginError` +- Added new `case .personNotFound` to `DeletePersonError` enum +- Added new `case .badRequest` to following enums: `ListMembershipsError`, `ListTeamMembershipResult`, `DeleteSpaceResult`, `ListWebhooksResult`, `GetWebhookByIdResult`, `CreateWebhookResult`, `UpdateWebhookByIdResult` and `DeleteWebhookByIdResult` + +#### Updated +- `base64Encode(resourceType: ResourceType, resource: String, completionHandler: @escaping (String, SpaceApiErrorInfo, Bool) -> Void)` to `base64Encode(resourceType: ResourceType, resource: String, completionHandler: @escaping (Result) -> Void)` +- The completion handlers for the following methods have been updated to accept a Result object instead of bare token string: `Authenticator.accessToken(:completionHandler)`, `JWTAuthenticator.authorizedWith(:jwt:completionHandler)`, `JWTAuthenticator.accessToken(:completionHandler)`, `JWTAuthenticator.refreshToken(:completionHandler)`, `OAuthAuthenticator.accessToken(:completionHandler)` + +#### Removed +- Removed `Phone.connected` API +- Removed `SpaceApiErrorInfo` struct + ## [3.0.0](https://github.com/webex/webex-ios-sdk/releases/tag/3.0.0) Released on 2021-05-24 #### Added diff --git a/README.md b/README.md index 1c5748e5..1b6e99a6 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,8 @@ This SDK is written in [Swift 5](https://developer.apple.com/swift) and requires * We do not support external authCode login anymore. * Starting a screenshare is not yet supported for CUCM calls. * Currently all resource ids that are exposed from the sdk are barebones GUIDs. You cannot directly use these ids to make calls to [webexapis.com](webexapis.com). You'll need to call `Webex.base64Encode(:ResourceType:resource:completionHandler)` to get a base64 encoded resource. However, you're free to interchange between base64 encoded resource ids and barebones GUID while providing them as input to the sdk APIs. +* FedRAMP( +Federal Risk and Authorization Management Program) support from 3.1.0 onwards. ## Install @@ -93,9 +95,10 @@ Here are some examples of how to use the iOS SDK in your app. ```swift let clientId = "$YOUR_CLIENT_ID" let clientSecret = "$YOUR_CLIENT_SECRET" + let scope = "spark:all" // space separated list of scopes. spark:all is always required let redirectUri = "https://webexdemoapp.com/redirect" - let authenticator = OAuthAuthenticator(clientId: clientId, clientSecret: clientSecret, redirectUri: redirectUri, emailId: "user@example.com") + let authenticator = OAuthAuthenticator(clientId: clientId, clientSecret: clientSecret, scope: scope, redirectUri: redirectUri, emailId: "user@example.com") let webex = Webex(authenticator: authenticator) webex.enableConsoleLogger = true webex.logLevel = .verbose // Highly recommended to make this end-user configurable incase you need to get detailed logs. @@ -126,12 +129,14 @@ Here are some examples of how to use the iOS SDK in your app. if isLoggedIn { print("User is authorized") } else { - authenticator.authorizedWith(jwt: myJwt) { success in - if success { - print("Login successful") - } else { - print("Login failed") - return + authenticator.authorizedWith(jwt: myJwt) { result in + switch result { + case .failure(let error): + print("JWT Login failed") + case .success(let authenticated): + if authenticated { + print("JWT Login successful") + } } }) } @@ -447,11 +452,12 @@ NOTE: Screen sharing will only work using v3 SDK with the latest `WebexBroadcast ``` ## Useful Resources - * [Webex iOS SDK API docs](https://webex.github.io/webex-ios-sdk/). + * [Webex iOS SDK API docs](https://webex.github.io/webex-ios-sdk/) * [Guide for migration from v2.x to v3.x](https://github.com/webex/webex-ios-sdk/wiki/Migrating-from-v2-to-v3) * [Guide for creating v3 compatible integrations & CUCM Push notifications](https://github.com/webex/webex-ios-sdk/wiki/App-Registration-for-Mobile-SDK-v3) * [Guide for CUCM calling](https://github.com/webex/webex-ios-sdk/wiki/CUCM-Usage-Guide-v3) * [Guide for using Multistream](https://github.com/webex/webex-ios-sdk/wiki/Multistream-Guide) + * [Guide for using SDK in FedRAMP environment](https://github.com/webex/webex-ios-sdk/wiki/iOS-SDK-FedRAMP-Environment) * [WebexSDK Wikis](https://github.com/webex/webex-ios-sdk/wiki) ## License