This is a set of Docker images related to Aerogear.
aerogear / aerogear-ios-sdk Goto Github PK
View Code? Open in Web Editor NEWAeroGear Services Swift SDK
Home Page: http://aerogear.org
License: Apache License 2.0
AeroGear Services Swift SDK
Home Page: http://aerogear.org
License: Apache License 2.0
Currently all top level SDK classes are not inheriting from NSObject.
@objc
annotation is not present. This is considered an anti pattern for libraries that could/should also work with ObjectiveC code.
Add top level objects should inherit from NSObject and have @objc
applied
Currently the Core SDK is parsing the version property of a mobile configuration as a String. See MobileConfig
This should be refactored to UInt
because the mobile cli tool returns the mobile configuration version as an integer.
Create a client in openshift and run mobile get clientconfig <client_id> --namespace=<namespace> -o json
. Notice the version number is and integer not a String
According to the Apple Markup language guide, the API doc for swift code should be like this:
/**
function description
- parameters:
- cubes: The cubes available for allocation
- people: The people that require cubes
*/
But in the SDK, we are using this format:
/**
* Get configuration for specific service reference
* @param serviceRef unique service reference uset to fetch configuration
* @return MobileService instance or nil if configuration is missing service of that type
*/
It's not matching the Apple standard.
At the moment, the SSO support is achieved by using the AppAuth module. By default, on iOS 11 above, it will use SFAuthenticationSession to perform SSO.
However, based on our testing, it doesn't ALWAYS work (see this comment). It's hard to determine why sometimes SSO doesn't work. This is using AppAuth version 0.92.0.
However, on the latest version of the master branch, a commit is added to allow customise the browser to use. But it is not published to cocoapods yet, and we can not use it in the Podspec file if a module is not published.
Once there is a new release of AppAuth (greater than 0.92.0), we should look at upgrading the auth module to use it. Then we should add a configuration to allow developers to specify which browser they want to invoke for authentication. This will provide a reliable option for developers to perform SSO.
Tasks:
It looks like the SDK is using Jazzy to generate the API docs. However, when following the instructions on jazzy, it doesn't work
This is the command I run:
jazzy \
--clean \
--author AeroGear \
--author_url https://www.aerogear.org \
--github_url https://github.com/aerogear \
--module-version 0.1.0 \
--xcodebuild-arguments -scheme,AeroGearSdkExample \
--module core \
--output docs/swift_output \
--theme docs/themes
and this is the error I get:
Running xcodebuild
Could not parse compiler arguments from `xcodebuild` output.
Please confirm that `xcodebuild` is building a Swift module.
Saved `xcodebuild` log file: /var/folders/6d/gvr23qrn6vbbp25_38kztbvc0000gn/T/xcodebuild-E37761DA-9A92-40B1-A04C-A162172D0C55.log
Failed to generate documentation
/Users/weili/.rvm/gems/ruby-2.2.6/gems/jazzy-0.9.1/lib/jazzy/executable.rb:36:in `execute_command': /Users/weili/.rvm/gems/ruby-2.2.6/gems/jazzy-0.9.1/bin/sourcekitten ["doc", "--module-name", "core", "--", "-scheme", "AeroGearSdkExample"] (RuntimeError)
Running xcodebuild
Could not parse compiler arguments from `xcodebuild` output.
Please confirm that `xcodebuild` is building a Swift module.
Saved `xcodebuild` log file: /var/folders/6d/gvr23qrn6vbbp25_38kztbvc0000gn/T/xcodebuild-E37761DA-9A92-40B1-A04C-A162172D0C55.log
Failed to generate documentation
from /Users/weili/.rvm/gems/ruby-2.2.6/gems/jazzy-0.9.1/lib/jazzy/sourcekitten.rb:225:in `run_sourcekitten'
from /Users/weili/.rvm/gems/ruby-2.2.6/gems/jazzy-0.9.1/lib/jazzy/doc_builder.rb:66:in `block in build'
from /Users/weili/.rvm/gems/ruby-2.2.6/gems/jazzy-0.9.1/lib/jazzy/doc_builder.rb:64:in `chdir'
from /Users/weili/.rvm/gems/ruby-2.2.6/gems/jazzy-0.9.1/lib/jazzy/doc_builder.rb:64:in `build'
from /Users/weili/.rvm/gems/ruby-2.2.6/gems/jazzy-0.9.1/bin/jazzy:15:in `<top (required)>'
from /Users/weili/.rvm/gems/ruby-2.2.6/bin/jazzy:22:in `load'
from /Users/weili/.rvm/gems/ruby-2.2.6/bin/jazzy:22:in `<main>'
I tried run the command from both the root of the SDK and the root of the example app but have the same results.
We need to provide wider support for swift versions in order to allow SDK to work with different Swift versions.
Add API doc links to the asciidocs.
At the moment the API docs have not been published so this issue is a reminder to add these links into the asciidocs once they are available
Currently when a request is made using the HTTP module it is assumed to have a JSON response. This causes a request in the Auth SDK to fail when the body of the response is empty. The HTTP status code is 200 though.
The request should succeed when the response body is empty.
The access token can become invalid when it is expired, or the claims have changed. In these cases, the access token should be refreshed. However, at the moment, the only way to get a new access token is to ask the user to logout and login again.
We should provide a new function to allow developers to refresh the access token without asking the user to authenticate again.
See: #50
When lookup the service configurations based types, the case shouldn't really matter. E.g. I can use "keycloak" or "Keycloak"
By the look of code, I think this is a bug in the ios sdk, but I could be wrong.
Why don't you put the refresh_token in the User struct?
Access and ID tokens are in there except the refresh token.
$ ./scripts/docs.sh
Generating core documentation
bundler: failed to load command: jazzy (/home/pwright/.rvm/gems/ruby-2.1.2/bin/jazzy)
Pod::Informative: [!] No podspec exists at path agscore.podspec
.
/home/pwright/.rvm/gems/ruby-2.1.2/gems/cocoapods-core-1.5.0/lib/cocoapods-core/specification.rb:586:in `from_file'
Probably just a ruby config thing. I'm using rvm and ruby 2.1.2, what do you recommend I try
Keycloak allows setting arbitrary attributes on users as described here.
We should update the SDK to retrieve these attributes from the user profile and allow developers to access them.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.