Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PMM-10231 Service Params Source #1110

Closed
wants to merge 60 commits into from
Closed
Show file tree
Hide file tree
Changes from 3 commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
6a508a3
PMM-10231 Credentials source implementation. API + admin
pkadej Aug 1, 2022
9a15289
Merge branch 'main' into PMM-10231_credential-sources
pkadej Aug 2, 2022
cddfb8a
PMM-10231 Credentials source implementation. API + agent
pkadej Aug 2, 2022
336742f
Merge branch 'main' into PMM-10231_credential-sources
pkadej Aug 2, 2022
91ff03b
Merge branch 'main' into PMM-10231_credential-sources
pkadej Aug 3, 2022
a9049ab
PMM-10231 Credentials source implementation.
pkadej Aug 3, 2022
79a3865
Merge branch 'main' into PMM-10231_credential-sources
pkadej Aug 8, 2022
a0b3f85
PMM-10231 Credentials source implementation.
pkadej Aug 8, 2022
20e3173
Merge branch 'main' into PMM-10231_credential-sources
pkadej Aug 9, 2022
aee4176
PMM-10231 Credentials source implementation.
pkadej Aug 9, 2022
79b6193
PMM-10231 Credentials source implementation.
pkadej Aug 9, 2022
d8b291a
PMM-10231 Credentials source implementation. Fixing tests.
pkadej Aug 9, 2022
304e811
PMM-10231 Credentials source implementation. Fixing tests.
pkadej Aug 9, 2022
c469a5b
PMM-10231 Credentials source implementation. Change admin's defaults.
pkadej Aug 9, 2022
5e39a33
Merge branch 'main' into PMM-10231_credential-sources
pkadej Aug 10, 2022
7dfc5e7
Merge branch 'main' into PMM-10231_credential-sources
pkadej Aug 10, 2022
0e33ad5
Merge branch 'main' into PMM-10231_credential-sources
pkadej Aug 11, 2022
591c8c4
Merge branch 'main' into PMM-10231_credential-sources
pkadej Aug 11, 2022
8761747
Merge branch 'main' into PMM-10231_credential-sources
pkadej Aug 15, 2022
132d5c5
Merge branch 'main' into PMM-10231_credential-sources
pkadej Aug 16, 2022
637fdf2
Merge branch 'main' into PMM-10231_credential-sources
pkadej Aug 17, 2022
800e10a
Merge branch 'main' into PMM-10231_credential-sources
pkadej Aug 18, 2022
cdc336a
PMM-10231 Defaults set for username/passwords in case when credential…
pkadej Aug 18, 2022
fb675b6
PMM-10231 Fixing api-tests.
pkadej Aug 18, 2022
be9f8b0
Merge branch 'main' into PMM-10231_credential-sources
pkadej Aug 23, 2022
b02b19a
PMM-10231 Commands fix.
pkadej Aug 23, 2022
1477334
PMM-10231 Codereview fixes.
pkadej Aug 24, 2022
0e92c4c
Merge branch 'main' into PMM-10231_credential-sources
pkadej Aug 24, 2022
d1b5dea
Merge branch 'main' into PMM-10231_credential-sources
pkadej Aug 26, 2022
dec0d4c
PMM-10231 Codereview fixes.
pkadej Aug 26, 2022
17d442e
PMM-10231 Codereview fixes.
pkadej Aug 26, 2022
3d471f5
Merge branch 'main' into PMM-10231_credential-sources
pkadej Aug 27, 2022
0108205
Merge branch 'main' into PMM-10231_credential-sources
pkadej Aug 30, 2022
c982151
Merge branch 'main' into PMM-10231_credential-sources
pkadej Sep 5, 2022
e7911cf
PMM-10231 Updates for code review.
pkadej Sep 5, 2022
000f9c7
PMM-10231 Updates for code review.
pkadej Sep 5, 2022
04883e3
Merge branch 'main' into PMM-10231_credential-sources
pkadej Sep 7, 2022
87ecf15
Merge branch 'main' into PMM-10231_credential-sources
pkadej Sep 9, 2022
fe1abae
Merge branch 'main' into PMM-10231_credential-sources
pkadej Sep 9, 2022
8e5a3f1
PMM-10231 Updating descriptor.bin
pkadej Sep 9, 2022
81df2ce
Merge branch 'main' into PMM-10231_credential-sources
pkadej Sep 19, 2022
b699b67
Merge branch 'main' into PMM-10231_credential-sources
pkadej Oct 19, 2022
38e0f3d
PMM-10231 api regenerate
pkadej Oct 19, 2022
ab22a33
PMM-10231 api regenerate
pkadej Oct 19, 2022
826e2e7
PMM-10231 service-params-source renaming api+admin
pkadej Oct 19, 2022
9e11efd
PMM-10231 service-params-source renaming agent
pkadej Oct 19, 2022
8b2d481
PMM-10231 service-params-source renaming managed
pkadej Oct 19, 2022
d78199b
PMM-10231 api regenerate
pkadej Oct 19, 2022
850a268
PMM-10231 Name fixes.
pkadej Oct 19, 2022
8760e5b
Merge branch 'main' into PMM-10231_credential-sources
pkadej Oct 20, 2022
1eee71a
PMM-10464 kong updates
pkadej Oct 20, 2022
d8ba120
PMM-10464 kong default values updates
pkadej Oct 20, 2022
2816f80
Merge branch 'main' into PMM-10231_credential-sources
pkadej Oct 21, 2022
2587477
Merge branch 'main' into PMM-10231_credential-sources
pkadej Oct 24, 2022
e54513a
Merge branch 'main' into PMM-10231_credential-sources
pkadej Oct 24, 2022
eaadde0
PMM-10464 Adding TODO.
pkadej Oct 24, 2022
45cce4c
Merge branch 'main' into PMM-10231_credential-sources
pkadej Oct 25, 2022
d7b570f
PMM-10464 Bumping Kong + pointers for username/passwords in pmm-admin.
pkadej Oct 25, 2022
caea892
Merge branch 'main' into PMM-10231_credential-sources
pkadej Oct 26, 2022
8f254ae
Merge branch 'main' into PMM-10231_credential-sources
pkadej Oct 26, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
21 changes: 2 additions & 19 deletions admin/commands/management/add_external.go
Expand Up @@ -68,18 +68,6 @@ type addExternalCommand struct {
SkipConnectionCheck bool
}

func (cmd *addExternalCommand) GetCredentials() error {
creds, err := commands.ReadFromSource(cmd.CredentialsSource)
if err != nil {
return fmt.Errorf("%w", err)
}

cmd.Password = creds.Password
cmd.Username = creds.Username

return nil
}

func (cmd *addExternalCommand) Run() (commands.Result, error) {
customLabels, err := commands.ParseCustomLabels(cmd.CustomLabels)
if err != nil {
Expand Down Expand Up @@ -110,12 +98,6 @@ func (cmd *addExternalCommand) Run() (commands.Result, error) {
cmd.MetricsPath = fmt.Sprintf("/%s", cmd.MetricsPath)
}

if cmd.CredentialsSource != "" {
if err := cmd.GetCredentials(); err != nil {
return nil, fmt.Errorf("failed to retrieve credentials from %s: %w", cmd.CredentialsSource, err)
}
}

params := &external.AddExternalParams{
Body: external.AddExternalBody{
RunsOnNodeID: cmd.RunsOnNodeID,
Expand All @@ -133,6 +115,7 @@ func (cmd *addExternalCommand) Run() (commands.Result, error) {
MetricsMode: pointer.ToString(strings.ToUpper(cmd.MetricsMode)),
Group: cmd.Group,
SkipConnectionCheck: cmd.SkipConnectionCheck,
CredentialsSource: cmd.CredentialsSource,
},
Context: commands.Ctx,
}
Expand Down Expand Up @@ -162,7 +145,7 @@ func init() {

AddExternalC.Flag("username", "External username").StringVar(&AddExternal.Username)
AddExternalC.Flag("password", "External password").StringVar(&AddExternal.Password)
AddExternalC.Flag("credentials-source", "Credentials provider").ExistingFileVar(&AddExternal.CredentialsSource)
AddExternalC.Flag("credentials-source", "Credentials provider").StringVar(&AddExternal.CredentialsSource)

AddExternalC.Flag("scheme", "Scheme to generate URI to exporter metrics endpoints").
PlaceHolder("http or https").StringVar(&AddExternal.Scheme)
Expand Down
21 changes: 2 additions & 19 deletions admin/commands/management/add_external_serverless.go
Expand Up @@ -75,18 +75,6 @@ type addExternalServerlessCommand struct {
SkipConnectionCheck bool
}

func (cmd *addExternalServerlessCommand) GetCredentials() error {
creds, err := commands.ReadFromSource(cmd.CredentialsSource)
if err != nil {
return fmt.Errorf("%w", err)
}

cmd.Password = creds.Password
cmd.Username = creds.Username

return nil
}

func (cmd *addExternalServerlessCommand) Run() (commands.Result, error) {
customLabels, err := commands.ParseCustomLabels(cmd.CustomLabels)
if err != nil {
Expand All @@ -107,12 +95,6 @@ func (cmd *addExternalServerlessCommand) Run() (commands.Result, error) {
cmd.MetricsPath = fmt.Sprintf("/%s", cmd.MetricsPath)
}

if cmd.CredentialsSource != "" {
if err := cmd.GetCredentials(); err != nil {
return nil, fmt.Errorf("failed to retrieve credentials from %s: %w", cmd.CredentialsSource, err)
}
}

params := &external.AddExternalParams{
Body: external.AddExternalBody{
AddNode: &external.AddExternalParamsBodyAddNode{
Expand Down Expand Up @@ -141,6 +123,7 @@ func (cmd *addExternalServerlessCommand) Run() (commands.Result, error) {
MetricsMode: pointer.ToString(external.AddExternalBodyMetricsModePULL),
Group: cmd.Group,
SkipConnectionCheck: cmd.SkipConnectionCheck,
CredentialsSource: cmd.CredentialsSource,
},
Context: commands.Ctx,
}
Expand Down Expand Up @@ -224,7 +207,7 @@ func init() {

AddExternalServerlessC.Flag("username", "External username").StringVar(&AddExternalServerless.Username)
AddExternalServerlessC.Flag("password", "External password").StringVar(&AddExternalServerless.Password)
AddExternalServerlessC.Flag("credentials-source", "Credentials provider").ExistingFileVar(&AddExternalServerless.CredentialsSource)
AddExternalServerlessC.Flag("credentials-source", "Credentials provider").StringVar(&AddExternalServerless.CredentialsSource)

AddExternalServerlessC.Flag("address", "External exporter address and port").
PlaceHolder("1.2.3.4:9000").StringVar(&AddExternalServerless.Address)
Expand Down
21 changes: 2 additions & 19 deletions admin/commands/management/add_haproxy.go
Expand Up @@ -61,18 +61,6 @@ type addHAProxyCommand struct {
SkipConnectionCheck bool
}

func (cmd *addHAProxyCommand) GetCredentials() error {
creds, err := commands.ReadFromSource(cmd.CredentialsSource)
if err != nil {
return fmt.Errorf("%w", err)
}

cmd.Password = creds.Password
cmd.Username = creds.Username

return nil
}

func (cmd *addHAProxyCommand) Run() (commands.Result, error) {
isSupported, err := helpers.IsHAProxySupported()
if !isSupported {
Expand All @@ -98,12 +86,6 @@ func (cmd *addHAProxyCommand) Run() (commands.Result, error) {
cmd.MetricsPath = fmt.Sprintf("/%s", cmd.MetricsPath)
}

if cmd.CredentialsSource != "" {
if err := cmd.GetCredentials(); err != nil {
return nil, fmt.Errorf("failed to retrieve credentials from %s: %w", cmd.CredentialsSource, err)
}
}

params := &ha_proxy.AddHAProxyParams{
Body: ha_proxy.AddHAProxyBody{
ServiceName: cmd.ServiceName,
Expand All @@ -119,6 +101,7 @@ func (cmd *addHAProxyCommand) Run() (commands.Result, error) {
CustomLabels: customLabels,
MetricsMode: pointer.ToString(strings.ToUpper(cmd.MetricsMode)),
SkipConnectionCheck: cmd.SkipConnectionCheck,
CredentialsSource: cmd.CredentialsSource,
},
Context: commands.Ctx,
}
Expand Down Expand Up @@ -146,7 +129,7 @@ func init() {

AddHAProxyC.Flag("username", "HAProxy username").StringVar(&AddHAProxy.Username)
AddHAProxyC.Flag("password", "HAProxy password").StringVar(&AddHAProxy.Password)
AddHAProxyC.Flag("credentials-source", "Credentials provider").ExistingFileVar(&AddHAProxy.CredentialsSource)
AddHAProxyC.Flag("credentials-source", "Credentials provider").StringVar(&AddHAProxy.CredentialsSource)

AddHAProxyC.Flag("scheme", "Scheme to generate URI to exporter metrics endpoints").
PlaceHolder("http or https").StringVar(&AddHAProxy.Scheme)
Expand Down
46 changes: 14 additions & 32 deletions admin/commands/management/add_mongodb.go
Expand Up @@ -97,19 +97,6 @@ func (cmd *addMongoDBCommand) GetSocket() string {
return cmd.Socket
}

func (cmd *addMongoDBCommand) GetCredentials() error {
creds, err := commands.ReadFromSource(cmd.CredentialsSource)
if err != nil {
return fmt.Errorf("%w", err)
}

cmd.AgentPassword = creds.AgentPassword
cmd.Password = creds.Password
cmd.Username = creds.Username

return nil
}

func (cmd *addMongoDBCommand) Run() (commands.Result, error) {
customLabels, err := commands.ParseCustomLabels(cmd.CustomLabels)
if err != nil {
Expand Down Expand Up @@ -143,26 +130,21 @@ func (cmd *addMongoDBCommand) Run() (commands.Result, error) {
return nil, err
}

if cmd.CredentialsSource != "" {
if err := cmd.GetCredentials(); err != nil {
return nil, fmt.Errorf("failed to retrieve credentials from %s: %w", cmd.CredentialsSource, err)
}
}

params := &mongodb.AddMongoDBParams{
Body: mongodb.AddMongoDBBody{
NodeID: cmd.NodeID,
ServiceName: serviceName,
Address: host,
Port: int64(port),
Socket: socket,
PMMAgentID: cmd.PMMAgentID,
Environment: cmd.Environment,
Cluster: cmd.Cluster,
ReplicationSet: cmd.ReplicationSet,
Username: cmd.Username,
Password: cmd.Password,
AgentPassword: cmd.AgentPassword,
NodeID: cmd.NodeID,
ServiceName: serviceName,
Address: host,
Port: int64(port),
Socket: socket,
PMMAgentID: cmd.PMMAgentID,
Environment: cmd.Environment,
Cluster: cmd.Cluster,
ReplicationSet: cmd.ReplicationSet,
Username: cmd.Username,
Password: cmd.Password,
AgentPassword: cmd.AgentPassword,
CredentialsSource: cmd.CredentialsSource,

QANMongodbProfiler: cmd.QuerySource == mongodbQuerySourceProfiler,

Expand Down Expand Up @@ -216,7 +198,7 @@ func init() {
AddMongoDBC.Flag("username", "MongoDB username").StringVar(&AddMongoDB.Username)
AddMongoDBC.Flag("password", "MongoDB password").StringVar(&AddMongoDB.Password)
AddMongoDBC.Flag("agent-password", "Custom password for /metrics endpoint").StringVar(&AddMongoDB.AgentPassword)
AddMongoDBC.Flag("credentials-source", "Credentials provider").ExistingFileVar(&AddMongoDB.CredentialsSource)
AddMongoDBC.Flag("credentials-source", "Credentials provider").StringVar(&AddMongoDB.CredentialsSource)

querySources := []string{mongodbQuerySourceProfiler, mongodbQuerySourceNone} // TODO add "auto"
querySourceHelp := fmt.Sprintf("Source of queries, one of: %s (default: %s)", strings.Join(querySources, ", "), querySources[0])
Expand Down
29 changes: 16 additions & 13 deletions admin/commands/management/add_mysql.go
Expand Up @@ -94,6 +94,7 @@ type addMySQLCommand struct {
Username string
Password string
AgentPassword string
CredentialsSource string
Environment string
Cluster string
ReplicationSet string
Expand Down Expand Up @@ -190,19 +191,20 @@ func (cmd *addMySQLCommand) Run() (commands.Result, error) {

params := &mysql.AddMySQLParams{
Body: mysql.AddMySQLBody{
NodeID: cmd.NodeID,
ServiceName: serviceName,
Address: host,
Socket: socket,
Port: int64(port),
PMMAgentID: cmd.PMMAgentID,
Environment: cmd.Environment,
Cluster: cmd.Cluster,
ReplicationSet: cmd.ReplicationSet,
Username: cmd.Username,
Password: cmd.Password,
AgentPassword: cmd.AgentPassword,
CustomLabels: customLabels,
NodeID: cmd.NodeID,
ServiceName: serviceName,
Address: host,
Socket: socket,
Port: int64(port),
PMMAgentID: cmd.PMMAgentID,
Environment: cmd.Environment,
Cluster: cmd.Cluster,
ReplicationSet: cmd.ReplicationSet,
Username: cmd.Username,
Password: cmd.Password,
AgentPassword: cmd.AgentPassword,
CredentialsSource: cmd.CredentialsSource,
CustomLabels: customLabels,

QANMysqlSlowlog: cmd.QuerySource == mysqlQuerySourceSlowLog,
QANMysqlPerfschema: cmd.QuerySource == mysqlQuerySourcePerfSchema,
Expand Down Expand Up @@ -255,6 +257,7 @@ func init() {
AddMySQLC.Flag("username", "MySQL username").Default("root").StringVar(&AddMySQL.Username)
AddMySQLC.Flag("password", "MySQL password").StringVar(&AddMySQL.Password)
AddMySQLC.Flag("agent-password", "Custom password for /metrics endpoint").StringVar(&AddMySQL.AgentPassword)
AddMySQLC.Flag("credentials-source", "Credentials provider").StringVar(&AddMySQL.CredentialsSource)

querySources := []string{mysqlQuerySourceSlowLog, mysqlQuerySourcePerfSchema, mysqlQuerySourceNone} // TODO add "auto", make it default
querySourceHelp := fmt.Sprintf("Source of SQL queries, one of: %s (default: %s)", strings.Join(querySources, ", "), querySources[0])
Expand Down
22 changes: 2 additions & 20 deletions admin/commands/management/add_postgresql.go
Expand Up @@ -89,19 +89,6 @@ func (cmd *addPostgreSQLCommand) GetSocket() string {
return cmd.Socket
}

func (cmd *addPostgreSQLCommand) GetCredentials() error {
creds, err := commands.ReadFromSource(cmd.CredentialsSource)
if err != nil {
return fmt.Errorf("%w", err)
}

cmd.AgentPassword = creds.AgentPassword
cmd.Password = creds.Password
cmd.Username = creds.Username

return nil
}

func (cmd *addPostgreSQLCommand) Run() (commands.Result, error) {
customLabels, err := commands.ParseCustomLabels(cmd.CustomLabels)
if err != nil {
Expand Down Expand Up @@ -156,12 +143,6 @@ func (cmd *addPostgreSQLCommand) Run() (commands.Result, error) {
}
}

if cmd.CredentialsSource != "" {
if err := cmd.GetCredentials(); err != nil {
return nil, fmt.Errorf("failed to retrieve credentials from %s: %w", cmd.CredentialsSource, err)
}
}

params := &postgresql.AddPostgreSQLParams{
Body: postgresql.AddPostgreSQLBody{
NodeID: cmd.NodeID,
Expand All @@ -175,6 +156,7 @@ func (cmd *addPostgreSQLCommand) Run() (commands.Result, error) {
AgentPassword: cmd.AgentPassword,
Socket: socket,
SkipConnectionCheck: cmd.SkipConnectionCheck,
CredentialsSource: cmd.CredentialsSource,

PMMAgentID: cmd.PMMAgentID,
Environment: cmd.Environment,
Expand Down Expand Up @@ -226,7 +208,7 @@ func init() {
AddPostgreSQLC.Flag("password", "PostgreSQL password").StringVar(&AddPostgreSQL.Password)
AddPostgreSQLC.Flag("database", "PostgreSQL database").StringVar(&AddPostgreSQL.Database)
AddPostgreSQLC.Flag("agent-password", "Custom password for /metrics endpoint").StringVar(&AddPostgreSQL.AgentPassword)
AddPostgreSQLC.Flag("credentials-source", "Credentials provider").ExistingFileVar(&AddPostgreSQL.CredentialsSource)
AddPostgreSQLC.Flag("credentials-source", "Credentials provider").StringVar(&AddPostgreSQL.CredentialsSource)

AddPostgreSQLC.Flag("node-id", "Node ID (default is autodetected)").StringVar(&AddPostgreSQL.NodeID)
AddPostgreSQLC.Flag("pmm-agent-id", "The pmm-agent identifier which runs this instance (default is autodetected)").StringVar(&AddPostgreSQL.PMMAgentID)
Expand Down
46 changes: 14 additions & 32 deletions admin/commands/management/add_proxysql.go
Expand Up @@ -81,19 +81,6 @@ func (cmd *addProxySQLCommand) GetSocket() string {
return cmd.Socket
}

func (cmd *addProxySQLCommand) GetCredentials() error {
creds, err := commands.ReadFromSource(cmd.CredentialsSource)
if err != nil {
return fmt.Errorf("%w", err)
}

cmd.AgentPassword = creds.AgentPassword
cmd.Password = creds.Password
cmd.Username = creds.Username

return nil
}

func (cmd *addProxySQLCommand) Run() (commands.Result, error) {
customLabels, err := commands.ParseCustomLabels(cmd.CustomLabels)
if err != nil {
Expand All @@ -118,26 +105,21 @@ func (cmd *addProxySQLCommand) Run() (commands.Result, error) {
return nil, err
}

if cmd.CredentialsSource != "" {
if err := cmd.GetCredentials(); err != nil {
return nil, fmt.Errorf("failed to retrieve credentials from %s: %w", cmd.CredentialsSource, err)
}
}

params := &proxysql.AddProxySQLParams{
Body: proxysql.AddProxySQLBody{
NodeID: cmd.NodeID,
ServiceName: serviceName,
Address: host,
Port: int64(port),
Socket: socket,
PMMAgentID: cmd.PMMAgentID,
Environment: cmd.Environment,
Cluster: cmd.Cluster,
ReplicationSet: cmd.ReplicationSet,
Username: cmd.Username,
Password: cmd.Password,
AgentPassword: cmd.AgentPassword,
NodeID: cmd.NodeID,
ServiceName: serviceName,
Address: host,
Port: int64(port),
Socket: socket,
PMMAgentID: cmd.PMMAgentID,
Environment: cmd.Environment,
Cluster: cmd.Cluster,
ReplicationSet: cmd.ReplicationSet,
Username: cmd.Username,
Password: cmd.Password,
AgentPassword: cmd.AgentPassword,
CredentialsSource: cmd.CredentialsSource,

CustomLabels: customLabels,
SkipConnectionCheck: cmd.SkipConnectionCheck,
Expand Down Expand Up @@ -180,7 +162,7 @@ func init() {
AddProxySQLC.Flag("username", "ProxySQL username").Default("admin").StringVar(&AddProxySQL.Username)
AddProxySQLC.Flag("password", "ProxySQL password").Default("admin").StringVar(&AddProxySQL.Password)
AddProxySQLC.Flag("agent-password", "Custom password for /metrics endpoint").StringVar(&AddProxySQL.AgentPassword)
AddProxySQLC.Flag("credentials-source", "Credentials provider").ExistingFileVar(&AddProxySQL.CredentialsSource)
AddProxySQLC.Flag("credentials-source", "Credentials provider").StringVar(&AddProxySQL.CredentialsSource)

AddProxySQLC.Flag("environment", "Environment name").StringVar(&AddProxySQL.Environment)
AddProxySQLC.Flag("cluster", "Cluster name").StringVar(&AddProxySQL.Cluster)
Expand Down
4 changes: 2 additions & 2 deletions agent/client/channel/channel.go
Expand Up @@ -277,10 +277,10 @@ func (c *Channel) runReceiver() {
ID: msg.Id,
Payload: p.PbmSwitchPitr,
}
case *agentpb.ServerMessage_ParseDefaultsFile:
case *agentpb.ServerMessage_ParseCredentialsSource:
c.requests <- &ServerRequest{
ID: msg.Id,
Payload: p.ParseDefaultsFile,
Payload: p.ParseCredentialsSource,
}

// responses
Expand Down