 Directories
      ¶
      Directories
      ¶
    
    | Path | Synopsis | 
|---|---|
| Package assets defines the templates and embedded filesystems. | Package assets defines the templates and embedded filesystems. | 
| cmd
       | |
| 
          
            adminapi
            
            command
          
           This server implements the admin facing APIs for issuing diagnosis codes and checking the status of previously issued codes. | This server implements the admin facing APIs for issuing diagnosis codes and checking the status of previously issued codes. | 
| 
          
            apiserver
            
            command
          
           This server implements the device facing APIs for exchanging verification codes for tokens and tokens for certificates. | This server implements the device facing APIs for exchanging verification codes for tokens and tokens for certificates. | 
| 
          
            appsync
            
            command
          
           This server syncs the published list of mobile apps to this server's db. | This server syncs the published list of mobile apps to this server's db. | 
| 
          
            backup
            
            command
          
           This server implements the backup service. | This server implements the backup service. | 
| 
          
            cleanup
            
            command
          
           This server implements the database cleanup. | This server implements the database cleanup. | 
| 
          
            e2e-runner
            
            command
          
           This is a server that invokes end-to-end tests. | This is a server that invokes end-to-end tests. | 
| 
          
            emailer
            
            command
          
           This server implements sending periodic emails invoked by a scheduler. | This server implements sending periodic emails invoked by a scheduler. | 
| 
          
            enx-redirect
            
            command
          
          
         | |
| 
          
            metrics-registrar
            
            command
          
           This server registers metrics for Stackdriver. | This server registers metrics for Stackdriver. | 
| 
          
            migrate
            
            command
          
           A binary for running database migrations | A binary for running database migrations | 
| 
          
            modeler
            
            command
          
           This server builds or re-builds the statistical models for predicting the future number of codes a realm with generate for abuse prevention. | This server builds or re-builds the statistical models for predicting the future number of codes a realm with generate for abuse prevention. | 
| 
          
            rotation
            
            command
          
           This server implements scheduled key-rotation. | This server implements scheduled key-rotation. | 
| 
          
            server
            
            command
          
          
         | |
| 
          
            stats-puller
            
            command
          
           This server implements the key-server statistics puller. | This server implements the key-server statistics puller. | 
| docs
       | |
| 
          
            images/architecture
            module
            
          
          
         | |
| internal
       | |
| 
          
            appsync
            
            
          
           package appsync contains API defintions for importing application data from the Google export feed | package appsync contains API defintions for importing application data from the Google export feed | 
| 
          
            auth
            
            
          
           Package auth exposes interfaces for various auth methods. | Package auth exposes interfaces for various auth methods. | 
| 
          
            browser
            
            
          
           Package browser provides helpers for writing integration tests that interact with the browser. | Package browser provides helpers for writing integration tests that interact with the browser. | 
| 
          
            buildinfo
            
            
          
           Package buildinfo provides high-level build information injected during build. | Package buildinfo provides high-level build information injected during build. | 
| 
          
            clients
            
            
          
           Package clients defines API clients for interacting with select APIs. | Package clients defines API clients for interacting with select APIs. | 
| 
          
            envstest
            
            
          
           Package envstest defines global test helpers for the entire project. | Package envstest defines global test helpers for the entire project. | 
| 
          
            firebase
            
            
          
           Package firebase is common logic and handling around firebase. | Package firebase is common logic and handling around firebase. | 
| 
          
            i18n
            
            
          
           Package i18n defines internationalization and localization. | Package i18n defines internationalization and localization. | 
| 
          
            icsv
            
            
          
           Package icsv defines an interface for things that can export as CSV. | Package icsv defines an interface for things that can export as CSV. | 
| 
          
            project
            
            
          
           Package project defines global project helpers. | Package project defines global project helpers. | 
| 
          
            routes
            
            
          
           Package routes defines the routing for services. | Package routes defines the routing for services. | 
| pkg
       | |
| 
          
            api
            
            
          
           Package api defines the JSON-RPC API between the browser and the server as well as between mobile devices and the server. | Package api defines the JSON-RPC API between the browser and the server as well as between mobile devices and the server. | 
| 
          
            cache
            
            
          
           Package cache implements an caches for objects. | Package cache implements an caches for objects. | 
| 
          
            config
            
            
          
           Package config defines the environment baased configuration for this project. | Package config defines the environment baased configuration for this project. | 
| 
          
            controller
            
            
          
           Package controller defines common utilities used by web and API controllers. | Package controller defines common utilities used by web and API controllers. | 
| 
          
            controller/admin
            
            
          
           Package admin contains controllers for system wide administrative actions. | Package admin contains controllers for system wide administrative actions. | 
| 
          
            controller/apikey
            
            
          
           Package apikey contains web controllers for listing and adding API Keys. | Package apikey contains web controllers for listing and adding API Keys. | 
| 
          
            controller/appsync
            
            
          
           Package appsync syncs the published list of mobile apps to this server's db. | Package appsync syncs the published list of mobile apps to this server's db. | 
| 
          
            controller/associated
            
            
          
           Package associated handles the iOS and Android associated app handler protocols. | Package associated handles the iOS and Android associated app handler protocols. | 
| 
          
            controller/backup
            
            
          
           Package backup implements data and database backups. | Package backup implements data and database backups. | 
| 
          
            controller/certapi
            
            
          
           Package certapi implements the token + TEK verification API. | Package certapi implements the token + TEK verification API. | 
| 
          
            controller/cleanup
            
            
          
           Package cleanup implements periodic data deletion. | Package cleanup implements periodic data deletion. | 
| 
          
            controller/codes
            
            
          
           Package codes defines a web controller for the code status page of the verification server. | Package codes defines a web controller for the code status page of the verification server. | 
| 
          
            controller/e2erunner
            
            
          
           Package e2erunner implements the end-to-end runner. | Package e2erunner implements the end-to-end runner. | 
| 
          
            controller/emailer
            
            
          
           Package email implements periodic email sending. | Package email implements periodic email sending. | 
| 
          
            controller/flash
            
            
          
           Package flash implements flash messages. | Package flash implements flash messages. | 
| 
          
            controller/issueapi
            
            
          
           Package issueapi implements the API handler for taking a code request, assigning an OTP, saving it to the database and returning the result. | Package issueapi implements the API handler for taking a code request, assigning an OTP, saving it to the database and returning the result. | 
| 
          
            controller/jwks
            
            
          
           Package jwks handles returning JSON encoded information about the server's encryption keys. | Package jwks handles returning JSON encoded information about the server's encryption keys. | 
| 
          
            controller/login
            
            
          
           Package login defines the controller for the login page. | Package login defines the controller for the login page. | 
| 
          
            controller/metricsregistrar
            
            
          
           Code generated by gen-metrics-registrar. | Code generated by gen-metrics-registrar. | 
| 
          
            controller/middleware
            
            
          
           Package middleware contains application specific gin middleware functions. | Package middleware contains application specific gin middleware functions. | 
| 
          
            controller/mobileapps
            
            
          
           Package mobileapps contains web controllers for listing and adding mobile apps. | Package mobileapps contains web controllers for listing and adding mobile apps. | 
| 
          
            controller/modeler
            
            
          
           Package modeler implements periodic statistical calculations. | Package modeler implements periodic statistical calculations. | 
| 
          
            controller/realmadmin
            
            
          
           Package realmadmin contains web controllers for changing realm settings. | Package realmadmin contains web controllers for changing realm settings. | 
| 
          
            controller/realmkeys
            
            
          
           Package realmkeys contains web controllers for realm certificate key management. | Package realmkeys contains web controllers for realm certificate key management. | 
| 
          
            controller/redirect
            
            
          
           Package redirect defines the controller for the deep link redirector. | Package redirect defines the controller for the deep link redirector. | 
| 
          
            controller/rotation
            
            
          
           Package rotation implements periodic secret rotation. | Package rotation implements periodic secret rotation. | 
| 
          
            controller/smskeys
            
            
          
           Package smskeys contains web controllers for realm certificate key management. | Package smskeys contains web controllers for realm certificate key management. | 
| 
          
            controller/stats
            
            
          
           Package stats produces statistics. | Package stats produces statistics. | 
| 
          
            controller/statspuller
            
            
          
           Package statspuller pulls statistics from the key server. | Package statspuller pulls statistics from the key server. | 
| 
          
            controller/user
            
            
          
           Package user contains web controllers for listing and adding users. | Package user contains web controllers for listing and adding users. | 
| 
          
            controller/userreport
            
            
          
           Package userreport defines the controller for the login page. | Package userreport defines the controller for the login page. | 
| 
          
            controller/verifyapi
            
            
          
           Package verifyapi implements the exchange of the verification code (short term token) for a long term token that can be used to get a verification certification to send to the key server. | Package verifyapi implements the exchange of the verification code (short term token) for a long term token that can be used to get a verification certification to send to the key server. | 
| 
          
            controller/webhooks
            
            
          
           Package webhooks provides webhook fulfilment endpoints. | Package webhooks provides webhook fulfilment endpoints. | 
| 
          
            cookiestore
            
            
          
           Package cookiestore provies an abstraction on top of the existing cookie store to handle hot-reloading of cookie HMAC and encryption keys. | Package cookiestore provies an abstraction on top of the existing cookie store to handle hot-reloading of cookie HMAC and encryption keys. | 
| 
          
            database
            
            
          
           Package database manages database connections and ORM integration. | Package database manages database connections and ORM integration. | 
| 
          
            digest
            
            
          
           Package digest includes common digest helpers | Package digest includes common digest helpers | 
| 
          
            email
            
            
          
           Package email is logic for sending email invitations Package email is logic for sending email invitations | Package email is logic for sending email invitations Package email is logic for sending email invitations | 
| 
          
            jwthelper
            
            
          
           Package jwthelper implements some common methods on top of the JWT library. | Package jwthelper implements some common methods on top of the JWT library. | 
| 
          
            keyutils
            
            
          
           Package keyutils provides helpers for working with ECDSA public keys. | Package keyutils provides helpers for working with ECDSA public keys. | 
| 
          
            observability
            
            
          
           Package observability provides tools for working with open census. | Package observability provides tools for working with open census. | 
| 
          
            pagination
            
            
          
           Package pagination defines pagination helpers. | Package pagination defines pagination helpers. | 
| 
          
            ratelimit
            
            
          
           Package ratelimit defines common rate limiting logic and config. | Package ratelimit defines common rate limiting logic and config. | 
| 
          
            ratelimit/limitware
            
            
          
           Package limitware provides middleware for rate limiting HTTP handlers. | Package limitware provides middleware for rate limiting HTTP handlers. | 
| 
          
            rbac
            
            
          
           Package rbac implements authorization. | Package rbac implements authorization. | 
| 
          
            realip
            
            
          
           Package realip attempts to extract the real IP address from a service running behind a load balancer. | Package realip attempts to extract the real IP address from a service running behind a load balancer. | 
| 
          
            redis
            
            
          
           Package redis defines redis-specific configurations. | Package redis defines redis-specific configurations. | 
| 
          
            render
            
            
          
           Package render defines rendering functionality. | Package render defines rendering functionality. | 
| 
          
            signatures
            
            
          
           Package signatures implements common signing algorithms. | Package signatures implements common signing algorithms. | 
| 
          
            sms
            
            
          
           Package sms defines interfaces for sending SMS text messages. | Package sms defines interfaces for sending SMS text messages. | 
| tools
       | |
| 
          
            e2e-test
            
            command
          
          
         | |
| 
          
            gen-keys
            
            command
          
           Utility for creating keys using the Key Manager. | Utility for creating keys using the Key Manager. | 
| 
          
            gen-secret
            
            command
          
           Small uiliity to generate random bytes and store them as secrets in Google Secret Manager. | Small uiliity to generate random bytes and store them as secrets in Google Secret Manager. | 
| 
          
            get-certificate
            
            command
          
           Exchanges a verification token for a verification certificate (step 2). | Exchanges a verification token for a verification certificate (step 2). | 
| 
          
            get-code
            
            command
          
           Exchanges a verification code for a verification token. | Exchanges a verification code for a verification token. | 
| 
          
            get-token
            
            command
          
           Exchanges a verification code for a verification token. | Exchanges a verification code for a verification token. | 
| 
          
            pofmt
            
            command
          
          
         | |
| 
          
            seed
            
            command
          
           Package main provides a utility that bootstraps the initial database with users and realms. | Package main provides a utility that bootstraps the initial database with users and realms. | 
| 
          
            user-report
            
            command
          
           Exchanges a verification code for a verification token. | Exchanges a verification code for a verification token. | 
| 
          
            user-report-web
            
            command
          
           Does the two step call to the webview to initiate a user report. | Does the two step call to the webview to initiate a user report. | 
| 
          
            verify-sms-signature
            
            command
          
          
         | 
 Click to show internal directories. 
   Click to hide internal directories.