Objective

To provide a campus wide API solution to securely provide data through standardize interfaces for all campus members and associated entities. To create a centralized access point where API providers can list data services they provide and find data services they larger community can consume. To ensure data security through clearly documented, standardized, accessible and actionable policies and best practices. To cultivate a forum where data can be used to service and extend the many aspects of research, development, and business needs of the campus.

API Roadmap

APIDescriptionStatusStartEstimated Completion
Power BI Active Directory Management API Insert users in Power BI AD groups to assign Power BI access. 
Curriculum Space Available Provide the space available for each section. This will prevent people from calling the curriculum API just to get the space available. 

Curriculum FinalsInclude course finals information in the curriculum API. Requested by the GoGaucho team.

Curriculum PrerequisitesInclude course prerequisites in the curriculum API. Requested by a student.

Curriculum instructor employee numbersNectir has requested an API that returns the instructor employee numbers for each class. The current curriculums API returns the instructor name, but not the id. For this reason Gaucho Space cannot use the curriculums API either. 

EmployeeEmployee name and appointment type information

TA VerificationAPI to verify how many quarters a person has been a TA. Requested by Academic Senate IT

Parking Structure Free Spaces InformationRetrieve the number of free spaces in a parking structure

Identity Provisioning/Deprovisioning Records

Retrieve list of identities which have had a lifecycle event status change.  Provisioning Events: Record creation, addition of an affiliation. Deprovisioning Events: Record "soft" deletion, removal of an affiliation.



Housing PropertiesList of places where students, faculty, staff can live

Campus BuildingsAll the campus buildings. Source has been identified as https://ucsb.metabim.com/

Housing Current List of ResidentsDo they live here? And, where do they live? There is a need to feed student residence into the SIS Gaucho Blue. There is also need to verify student residency one student at a time for some of the Housing needs. 

Employee PhotosReturn the Access Card photos for employees by the UCPath employee ID. It will include the photo hash as well. On hold due to HR concerns.  

Roadmap

Project
Summary
Status
Start
Estimated
Completion
Drupal 8Upgrade the Drupal Portal to version 8. This will use the Drupal 8 Apigee plugin (which is still in prerelease).  
Usage ReportsDevelop API usage reports and make them available to stakeholders and developers who do not have access to the Gateway.  
Apigee Teams FeatureApigee's "Companies" (ie. Teams) feature is a plugin for the Drupal portal with tie-ins to the API Gateway backend. It will allow developers to create Teams, and associate the applications they create with their Teams, rather than themselves.

Account Cleanup ProjectOn an annual basis we would like to review the accounts we have in the system in order to remove accounts that should no longer be active and reduce our security risk profile. To do this we will want to check what accounts are not in active use or their owners are no longer affiliated with the University.

Campus API Security Improvements

Better integrate the API security model with the Campus IdM Team's security model. Look at creating service accounts at the campus level and managing their access through the gateway within https://developer.ucsb.edu.

Secondary Ask: Campus Identity Resource Request



Automated Tasks - Access Request MonitorAn automated task which will monitor access requests from users to auto-approve particular APIs and send Access Request information about restricted APIs.

@apibot - ReportingGenerate reports on API Usage, Access Violations, and Errors.

Statuspage.io IntegrationHave a Statuspage to show the availability and history of the APIs and overall system. Similar to SA's statuspage.

Client Library Reference ArchitectureBuild a client library that demonstrates how to use the API Key and UCSB Net ID/password combination to retrieve data. This project should be hosted in Github and if possible, a build should be hosted on a public repository (nuget).

Drupal - Account Creation Review (Approve/Deny)An extension to drupal which will look at an new account creation. Given a simple set of rules some account requests should be able to be auto-denied. Maybe some can also be auto approved.

Completed


ProjectSummaryStatusStartCompletion
Student Email Address BARCReturn students with changes to the email address in the last x number of days.  
Academic Quarter Calendar BARCRetrieve quarter-calendar records in a format specific to BARC.   
Graduate Division Applicant Verification (Private)Verify graduate student admissions application information. Will be used in housing process for new grad students.  
Library Employee List (Private)Employee name and appointment type information to be used in the Library Alma system to validate current employment status.  
Academic Curriculum (Registrar)Curriculums service for Campus API (Box)

Recreation Patron Photos (Private)Return the student or employee Access card photos by perm or UCPath employee ID (the Fusion padded ID).   
Housing Contract Admissions StatusWhat status the students housing contract is in  
@apibot - Javascript ConversionTake the existing functionality of @apibot and convert it from Powershell to Javascript. Move hosting of the bot on the Google Cloud Platform. Develop a workflow that multiple people can develop scripts for it at the same time. Create a CI/CD deployment chain to ensure successful updates.
 
Students Rosters (Registrar)Rosters service for Campus API (Box)
Meal Plan InformationMeal plans and rates  
Workflow - Access RequestCreate a new workflow to improve requesting access to an API. The workflow should capture information about the application and the approveral which can be referenced later on for auditing purposes.

 

 
Workflow - Publish a New APIInstall a workflow system into the Drupal portal and developer a "Publish a New API (for Data/API Providers)" workflow.  
API - Registrar Courses & Student Schedule Public ServiceCourses service for Campus API (Box)
API - Registrar Students Public ServiceStudents service for Campus API (Box)
API - Dining Commons General InformationNames, Locations, etc.  
Status Monitoring and HealthchecksUse a monitoring system to make sure we are notified when an API is unavailable.  
Slack Integration - @apibot Create a slack integrtion hubot which will handle: search for newly created developer accounts, api product approval, and target server gateway configuration
 
Initial RolloutCreate First APIs, Developer Portal, Introductory Documentation, and Communicate with Campus the availability of the System
 
 

Principles

(We don't always achieve these, but this is what we're shooting for)

Provide an easy and quick to use Developer Portal for finding APIs and the data they provide. In order for APIs to be useful, people need to use them and the first step to do that is make them easily found through search engines and clear documentation.

Ensure data security through multiple layers of data security mechanisms while still providing efficient processes for granting access and using services. Data security mechanisms include secure communication, client & user authentication, data protection filtering, and authorization.

Create a consistent understanding of data and it's usage through standardized interfaces, naming conventions, documentation, and functionality. Ensure consistent usage of data by providing API services with common and reusable logic that can be maintained by campus subject matter authorities and can be used by all campus members.

Enable API change management to occur through structured and well known channels that ensure data stability and consistency. Preserve community access to improvements and changes through an open and accessible governance process.