| // Copyright 2017 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // Schema to store user's long lived credentials from different Identity |
| // Providers. |
| |
| namespace modular; |
| namespace auth; |
| |
| // List of supported identity providers. |
| enum IdentityProvider : byte { GOOGLE } |
| |
| // IdpCredential is used to store refresh token from each identity provider |
| // after user's consent. |
| table IdpCredential { |
| identity_provider: IdentityProvider; |
| refresh_token: string; |
| } |
| |
| // UserCredential stores a list of authentication credentials from various |
| // identity providers for each unique user. |
| table UserCredential { |
| account_id: string; |
| tokens: [IdpCredential]; |
| } |
| |
| // Stores authentication credentials for all users. |
| table CredentialStore { |
| creds: [UserCredential]; |
| } |
| |
| root_type CredentialStore; |