Skip to content

Commit 9e24798

Browse files
frodesundbyjhrv
andcommitted
refactor: fjern elevation-konseptet fra CLI
Co-authored-by: Johnny Horvi <johnny@horvi.no>
1 parent 885f41a commit 9e24798

13 files changed

Lines changed: 445 additions & 239 deletions

File tree

internal/naisapi/auth/localhost.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package auth
22

33
import (
44
"context"
5+
"fmt"
56
"net/http"
67
"os"
78

@@ -30,6 +31,11 @@ func Localhost() (*LocalhostUser, bool) {
3031
}, true
3132
}
3233

34+
// APIURL overrides the parent method to use HTTP instead of HTTPS for local development
35+
func (l *LocalhostUser) APIURL() string {
36+
return fmt.Sprintf("http://%s/graphql", l.ConsoleHost())
37+
}
38+
3339
func (l *LocalhostUser) HTTPClient(_ context.Context) *http.Client {
3440
return &http.Client{
3541
Transport: l.RoundTripper(http.DefaultTransport),

internal/naisapi/elevation.go

Lines changed: 0 additions & 76 deletions
This file was deleted.

internal/naisapi/gql/generated.go

Lines changed: 115 additions & 41 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/naisapi/secret.go

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
package naisapi
2+
3+
import (
4+
"context"
5+
"fmt"
6+
7+
"github.com/nais/cli/internal/naisapi/gql"
8+
)
9+
10+
// SecretValue represents a key-value pair from a secret
11+
type SecretValue struct {
12+
Name string
13+
Value string
14+
}
15+
16+
// ViewSecretValues retrieves the values of a secret. This requires team membership
17+
// and a reason for access. The access is logged for auditing purposes.
18+
func ViewSecretValues(ctx context.Context, team, environmentName, secretName, reason string) ([]SecretValue, error) {
19+
_ = `# @genqlient
20+
mutation ViewSecretValues($input: ViewSecretValuesInput!) {
21+
viewSecretValues(input: $input) {
22+
values {
23+
name
24+
value
25+
}
26+
}
27+
}
28+
`
29+
30+
client, err := GraphqlClient(ctx)
31+
if err != nil {
32+
return nil, fmt.Errorf("creating GraphQL client: %w", err)
33+
}
34+
35+
resp, err := gql.ViewSecretValues(ctx, client, gql.ViewSecretValuesInput{
36+
Name: secretName,
37+
Environment: environmentName,
38+
Team: team,
39+
Reason: reason,
40+
})
41+
if err != nil {
42+
return nil, fmt.Errorf("viewing secret values: %w", err)
43+
}
44+
45+
values := make([]SecretValue, len(resp.ViewSecretValues.Values))
46+
for i, v := range resp.ViewSecretValues.Values {
47+
values[i] = SecretValue{
48+
Name: v.Name,
49+
Value: v.Value,
50+
}
51+
}
52+
53+
return values, nil
54+
}

internal/postgres/access.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ var (
3535
)
3636

3737
func PrepareAccess(ctx context.Context, appName string, namespace flag.Namespace, cluster flag.Context, schema string, allPrivs bool, out *naistrix.OutputWriter) error {
38-
// Ensure we have elevated access to read the database secret (hardcoded reason for administrative operation)
39-
if err := EnsureSecretAccess(ctx, appName, namespace, cluster, ReasonPrepareAccess, out); err != nil {
38+
// Get secret values (access is logged for audit purposes)
39+
if _, err := GetSecretValues(ctx, appName, namespace, cluster, ReasonPrepareAccess, out); err != nil {
4040
return err
4141
}
4242

@@ -55,8 +55,8 @@ func PrepareAccess(ctx context.Context, appName string, namespace flag.Namespace
5555
}
5656

5757
func RevokeAccess(ctx context.Context, appName string, namespace flag.Namespace, cluster flag.Context, schema string, out *naistrix.OutputWriter) error {
58-
// Ensure we have elevated access to read the database secret (hardcoded reason for administrative operation)
59-
if err := EnsureSecretAccess(ctx, appName, namespace, cluster, ReasonRevokeAccess, out); err != nil {
58+
// Get secret values (access is logged for audit purposes)
59+
if _, err := GetSecretValues(ctx, appName, namespace, cluster, ReasonRevokeAccess, out); err != nil {
6060
return err
6161
}
6262

0 commit comments

Comments
 (0)