src/server/pps/server/api_server.go
func (a *apiServer) sudo(pachClient *client.APIClient, f func(*client.APIClient) error) error {
	// Get PPS auth token
	superUserTokenOnce.Do(func() {
		b := backoff.NewExponentialBackOff()
		b.MaxElapsedTime = 60 * time.Second
		b.MaxInterval = 5 * time.Second
		if err := backoff.Retry(func() error {
			superUserTokenCol := col.NewCollection(a.env.GetEtcdClient(), ppsconsts.PPSTokenKey, nil, &types.StringValue{}, nil, nil).ReadOnly(pachClient.Ctx())
			var result types.StringValue
			if err := superUserTokenCol.Get("", &result); err != nil {
				return err
			}
			superUserToken = result.Value
			return nil
		}, b); err != nil {
			panic(fmt.Sprintf("couldn't get PPS superuser token: %v", err))
		}
	})

	// Copy pach client, but keep ctx (to propagate cancellation). Replace token
	// with superUserToken
	superUserClient := pachClient.WithCtx(pachClient.Ctx())
	superUserClient.SetAuthToken(superUserToken)
	return f(superUserClient)
}
func (a *apiServer) sudo(pachClient *client.APIClient, f func(*client.APIClient) error) error {
	// Get PPS auth token
	superUserTokenOnce.Do(func() {
		b := backoff.NewExponentialBackOff()
		b.MaxElapsedTime = 60 * time.Second
		b.MaxInterval = 5 * time.Second
		if err := backoff.Retry(func() error {
			superUserTokenCol := col.NewCollection(a.env.GetEtcdClient(), ppsconsts.PPSTokenKey, nil, &types.StringValue{}, nil, nil).ReadOnly(pachClient.Ctx())
			var result types.StringValue
			if err := superUserTokenCol.Get("", &result); err != nil {
				return err
			}
			superUserToken = result.Value
			return nil
		}, b); err != nil {
			panic(fmt.Sprintf("couldn't get PPS superuser token: %v", err))
		}
	})

	// Copy pach client, but keep ctx (to propagate cancellation). Replace token
	// with superUserToken
	superUserClient := pachClient.WithCtx(pachClient.Ctx())
	superUserClient.SetAuthToken(superUserToken)
	return f(superUserClient)
}
func ( a * apiServer ) sudo ( pachClient * client . APIClient , f func ( * client . APIClient ) error ) error { // Get PPS auth token superUserTokenOnce . Do ( func ( ) { b := backoff . NewExponentialBackOff ( ) b . MaxElapsedTime = 60 * time . Second b . MaxInterval = 5 * time . Second if err := backoff . Retry ( func ( ) error { superUserTokenCol := col . NewCollection ( a . env . GetEtcdClient ( ) , ppsconsts . PPSTokenKey , nil , & types . StringValue { } , nil , nil ) . ReadOnly ( pachClient . Ctx ( ) ) var result types . StringValue if err := superUserTokenCol . Get ( " " , & result ) ; err != nil { return err } superUserToken = result . Value return nil } , b ) ; err != nil { panic ( fmt . Sprintf ( " " , err ) ) } } ) // Copy pach client, but keep ctx (to propagate cancellation). Replace token // with superUserToken superUserClient := pachClient . WithCtx ( pachClient . Ctx ( ) ) superUserClient . SetAuthToken ( superUserToken ) return f ( superUserClient ) }
// sudo is a helper function that copies 'pachClient' grants it PPS's superuser
// token, and calls 'f' with the superuser client. This helps isolate PPS's use
// of its superuser token so that it's not widely copied and is unlikely to
// leak authority to parts of the code that aren't supposed to have it.
//
// Note that because the argument to 'f' is a superuser client, it should not
// be used to make any calls with unvalidated user input. Any such use could be
// exploited to make PPS a confused deputy
sudo is a helper function that copies pachClient grants it PPS s superuser token and calls f with the superuser client . This helps isolate PPS s use of its superuser token so that it s not widely copied and is unlikely to leak authority to parts of the code that aren t supposed to have it . Note that because the argument to f is a superuser client it should not be used to make any calls with unvalidated user input . Any such use could be exploited to make PPS a confused deputy