I’m evaluating DF. I’ve been reading and found it interesting. However I need to see the full picture on how to orchestate all my app’s requirements. So I have some questions:
Authenticate users against Google using AWS Cognito
How could I do this? I’ve never authenticated an app against Google or Facebook, so I’d like to use AWS Cognito. What part of the problem does DF resolves, how does it related to locally defined roles and users, and how should I start?
Custom Services
Am I able to create my own services? I’d like to define custom operations, but I don’t know how can I extend my DF instance with my own coded services or if I should code an API by myself and then add it as a Remote REST Service? I though it could be on Custom Scripts, but it ask me to login anytime I try to enter there.
DreamFactory 1.x only supports Facebook OAuth, and 2.0 will be supporting various OAuth providers as well as adLDAP. If you need to add this functionality sooner rather than later, I imagine it would be possible with a server-side script. E.g., the client passes the user’s DreamFactory credentials in addition to AWS Cognito credentials to the script, the script calls the AWS Cognito service for authorization, and then the script either logs in the user to DreamFactory or responds to decline the login.
If you need to create custom services and sets of API calls for those services, DreamFactory provides two options for doing so: you can add the external service as a Remote Web Service and call it through DreamFactory, or you can create a new Service and edit the Service Definition according to Swagger specifications to create a totally customized set of API calls. Here is an example that combines a Remote Web Service with manually editing the Service Definition to create a custom set of API calls.
If you cannot accomplish the API calls you need to make available by writing them in Swagger or using server-side scripting and custom user scripts, then yes you should code an external API, add it as a remote web service, and then write a Swagger definition for it.