Challenge Overview

Cloud Hub is looking to add our application to several SSO providers, but in this challenge we only need support for Okta specific functionality. We need to enable SCIM API endpoints to allow these services to provision users. We also want to add /companies/{id}/tokens to allow a company to create API tokens to be used with the SCIM endpoints. The SSO providers have some good documentation and test scripts for creating and debugging. We will add these links to the forums.

Project Overview
Cloud Hub is trying to help their client solve the problem of knowing what software applications they are spending the most money on over time. Cloud Hub will take in data from credit cards and other sources and attempt to show what software the client has purchased and who is using the applications the most.

Requirements
1. Implement /companies/{id}/tokens CRUD endpoints.
     a. GET /companies/{id}/tokens to enable admin to retrieve the list of tokens issued by a given company.
     b. POST /companies/{id}/tokens with empty body to create and return a new token.
     c. DELETE /companies/{id}/tokens/{token} to remove a token.
2. Implement SCIM endpoints in test suite under /scim/v2 as the base URL. We are not concerned about http://developer.okta.com/docs/guides/scim_guidance#scim-features-not-implemented-by-okta or rate limiting in this challenge.
3. Add external_id to users table to store User ID.
4. Update /login to check user status. User should have status === A.


Final Submission Guidelines

1. Any additions or modifications to the code project pass on "npm run lint" and "npm run test".
2. Provide your code and documentation in a single zip file. Please include a git patch for easier integration of changes.
3. The bulk of your documentation should be in the Readme.md and you should assume that this will be open source so make sure you cover all the steps to set up,  If you have specific information that should not be included in a public readme (like links to your video) put them in a file called submission.txt and they will be omitted from the project if it is open sourced.
4. Provide a quick video of your solution in action (feel free to annotate your video if you are not comfortable with spoken English or don’t like the sound of your own voice). Video may be private on youtube or added to the submission files. Your video can skip the setup of your environment and application.

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30054729