Developer documentation:

The Arvados API server provides controlled access to the Arvados subsystems. Its responsibilities include:

  • Authenticating users (people) and clients (programs) using OAuth2 and client registration
  • Authorizing each transaction (applying the permission model)
  • Enforcing constraints on certain object properties (e.g., Collection UUID must equal MD5)
  • Assigning UUIDs to objects

The API server is implemented in Ruby on Rails, with a PostgreSQL database.