<!-- PR description--> Flags for all configs- Azure cred flags- (azure-tenant-id, azure-client-id, azure-client-secret) present in - - Backup (create, delete, details and list) and restore of Exchange, Onedrive and Sharepoint command - S3 repo init and connect command AWS cred flags - (aws-access-key, aws-secret-access-key, aws-session-token) present in- - Backup (create, delete, details and list) and restore of Exchange, Onedrive and Sharepoint command - S3 repo init and connect command Passphrase flag- (--passphrase) present in- - Backup (create, delete, details and list) and restore of Exchange, Onedrive and Sharepoint command - S3 repo init and connect command S3 flags- --endpoint, --prefix, --bucket, --disable-tls, --disable-tls-verification - flags is for repo init and connect commands all the S3 env var will also work only in case of repo init and connect command. For all other commands user first connects to repo. Which will store the config values in config file. And then user can use that config file for other commands. No cred configs are save in the config file by Corso. Config file values added- Azure cred - - azure_client_id - azure_secret - azure_tenantid AWS cred - - aws_access_key_id - aws_secret_access_key - aws_session_token Passphrase - - passphrase **NOTE:** - in case of AWS creds all the three values should be provided from same method. Either put all values in env, config file and so on. - all the S3 env var will also work only in case of repo init and connect command. For all other commands user first connects to repo. Which will store the config values in config file. And then user can use that config file for other commands. --- #### Does this PR need a docs update or release note? - [ ] ✅ Yes, it's included - [x] 🕐 Yes, but in a later PR - [ ] ⛔ No #### Type of change <!--- Please check the type of change your PR introduces: ---> - [x] 🌻 Feature #### Issue(s) <!-- Can reference multiple issues. Use one of the following "magic words" - "closes, fixes" to auto-close the Github issue. --> * https://github.com/alcionai/corso/issues/3522 #### Test Plan <!-- How will this be tested prior to merging.--> - [x] 💪 Manual - [x] ⚡ Unit test - [ ] 💚 E2E
30 lines
484 B
Go
30 lines
484 B
Go
package credentials
|
|
|
|
import (
|
|
"github.com/alcionai/clues"
|
|
)
|
|
|
|
// envvar consts
|
|
const (
|
|
CorsoPassphrase = "CORSO_PASSPHRASE"
|
|
)
|
|
|
|
// Corso aggregates corso credentials from flag and env_var values.
|
|
type Corso struct {
|
|
CorsoPassphrase string // required
|
|
}
|
|
|
|
func (c Corso) Validate() error {
|
|
check := map[string]string{
|
|
CorsoPassphrase: c.CorsoPassphrase,
|
|
}
|
|
|
|
for k, v := range check {
|
|
if len(v) == 0 {
|
|
return clues.Stack(errMissingRequired, clues.New(k))
|
|
}
|
|
}
|
|
|
|
return nil
|
|
}
|