Skip to content

Commit 9bfcbd1

Browse files
uc-build-userjwangxx
authored andcommitted
Sync monorepo state at 7891e3fe58609e06a564a602c914c9264da2e598
1 parent 47dd315 commit 9bfcbd1

File tree

11 files changed

+129
-19
lines changed

11 files changed

+129
-19
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# Changelog
22

3+
## 1.6.1 - 26-09-2024
4+
5+
- add policy secrets SDK methods
6+
- minor changes to prepare for upgrade to go 1.23.1
7+
38
## 1.6.0 - 12-09-2024
49

510
- add ObjectStore CRUD methods

authz/client.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -674,23 +674,23 @@ func (c *Client) ListEdgeTypesPaginated(ctx context.Context, opts ...Option) (*L
674674
ctx = request.NewRequestID(ctx)
675675

676676
options := c.options
677-
var resp ListEdgeTypesResponse
677+
for _, opt := range opts {
678+
opt.apply(&options)
679+
}
678680

679681
pager, err := pagination.ApplyOptions(options.paginationOptions...)
680682
if err != nil {
681683
return nil, ucerr.Wrap(err)
682684
}
683685

684-
for _, opt := range opts {
685-
opt.apply(&options)
686-
}
687-
688686
query := pager.Query()
689687

690688
if !options.organizationID.IsNil() {
691689
query.Add("organization_id", options.organizationID.String())
692690
}
693691

692+
var resp ListEdgeTypesResponse
693+
694694
if err := c.client.Get(ctx, fmt.Sprintf("/authz/edgetypes?%s", query.Encode()), &resp); err != nil {
695695
return nil, ucerr.Wrap(err)
696696
}

idp/paths/paths.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,13 @@ var (
178178

179179
BaseDataMappingPath = "/userstore/datamapping"
180180

181+
BaseSecretPath = fmt.Sprintf("%s/secret", BasePolicyPath)
182+
ListSecrets = BaseSecretPath
183+
CreateSecret = BaseSecretPath
184+
DeleteSecret = func(id uuid.UUID) string {
185+
return fmt.Sprintf("%s/%s", BaseSecretPath, id)
186+
}
187+
181188
CreateDataSourcePath = fmt.Sprintf("%s/datasource", BaseDataMappingPath)
182189
singleDataSourcePath = func(id uuid.UUID) string {
183190
return fmt.Sprintf("%s/%s", CreateDataSourcePath, id)

idp/policy/models.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -302,3 +302,13 @@ const (
302302
ActionDelete Action = "Delete"
303303
ActionExecute Action = "Execute" // TODO: should this be a unique action?
304304
)
305+
306+
// Secret describes a secret that can be used in access policy templates and transformers
307+
type Secret struct {
308+
ID uuid.UUID `json:"id" validate:"notnil"`
309+
Name string `json:"name" validate:"length:1,128" required:"true"`
310+
Value string `json:"value" validate:"skip" required:"true"`
311+
Created int64 `json:"created" validate:"skip"`
312+
}
313+
314+
//go:generate genvalidate Secret

idp/tokenizer/policy_requests.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,3 +127,8 @@ type TestAccessPolicyResponse struct {
127127
Allowed bool `json:"allowed"`
128128
Debug map[string]interface{} `json:"debug,omitempty"`
129129
}
130+
131+
// CreateSecretRequest is the request to create a secret
132+
type CreateSecretRequest struct {
133+
Secret policy.Secret `json:"secret"`
134+
}

idp/tokenizer_client.go

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -622,3 +622,58 @@ func (c *TokenizerClient) DeleteTransformer(ctx context.Context, id uuid.UUID) e
622622

623623
return nil
624624
}
625+
626+
// ListSecretsResponse is the paginated response from listing secrets
627+
type ListSecretsResponse struct {
628+
Data []policy.Secret `json:"data"`
629+
pagination.ResponseFields
630+
}
631+
632+
// ListSecrets lists secrets that can be referenced in access policy templates and transformers
633+
func (c *TokenizerClient) ListSecrets(ctx context.Context, opts ...Option) (*ListSecretsResponse, error) {
634+
options := c.options
635+
for _, opt := range opts {
636+
opt.apply(&options)
637+
}
638+
639+
var res ListSecretsResponse
640+
641+
pager, err := pagination.ApplyOptions(options.paginationOptions...)
642+
if err != nil {
643+
return nil, ucerr.Wrap(err)
644+
}
645+
646+
url := url.URL{
647+
Path: paths.ListSecrets,
648+
RawQuery: pager.Query().Encode(),
649+
}
650+
if err := c.client.Get(ctx, url.String(), &res); err != nil {
651+
return nil, ucerr.Wrap(err)
652+
}
653+
654+
return &res, nil
655+
}
656+
657+
// CreateSecret creates a secret
658+
func (c *TokenizerClient) CreateSecret(ctx context.Context, secret policy.Secret) (*policy.Secret, error) {
659+
660+
req := tokenizer.CreateSecretRequest{
661+
Secret: secret,
662+
}
663+
664+
var resp policy.Secret
665+
if err := c.client.Post(ctx, paths.CreateSecret, req, &resp); err != nil {
666+
return nil, ucerr.Wrap(err)
667+
}
668+
669+
return &resp, nil
670+
}
671+
672+
// DeleteSecret deletes a secret
673+
func (c *TokenizerClient) DeleteSecret(ctx context.Context, id uuid.UUID) error {
674+
if err := c.client.Delete(ctx, paths.DeleteSecret(id), nil); err != nil {
675+
return ucerr.Wrap(err)
676+
}
677+
678+
return nil
679+
}

infra/logtransports/config.go

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,26 +30,39 @@ func (c Config) extraValidate() error {
3030
type TransportConfigs []TransportConfig
3131

3232
// UnmarshalYAML implements yaml.Unmarshaler
33-
func (t *TransportConfigs) UnmarshalYAML(value *yaml.Node) error {
33+
func (tcs *TransportConfigs) UnmarshalYAML(value *yaml.Node) error {
3434
var c []intermediateConfig
3535
if err := value.Decode(&c); err != nil {
3636
return ucerr.Wrap(err)
3737
}
3838

3939
// init if we're nil
40-
if t == nil {
41-
*t = make([]TransportConfig, 0, len(c))
40+
if tcs == nil {
41+
*tcs = make([]TransportConfig, 0, len(c))
4242
}
4343

4444
// use append here to allow us to merge multiple transports across multiple files
4545
// see config_test.go:MergeTest
46+
// We also want one of each transport type, so we'll overwrite any existing transports configs with the same type
4647
for _, v := range c {
47-
*t = append(*t, v.c)
48+
if existing := tcs.getIndexForTransportType(v.c.GetType()); existing == -1 {
49+
*tcs = append(*tcs, v.c)
50+
} else {
51+
(*tcs)[existing] = v.c
52+
}
4853
}
49-
5054
return nil
5155
}
5256

57+
func (tcs *TransportConfigs) getIndexForTransportType(tt TransportType) int {
58+
for i, v := range *tcs {
59+
if v.GetType() == tt {
60+
return i
61+
}
62+
}
63+
return -1
64+
}
65+
5366
// intermediateConfig is a place to unmarshal to before we know the type of transport
5467
type intermediateConfig struct {
5568
c TransportConfig

infra/logtransports/logServerMapFetcher.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ package logtransports
44
import (
55
"encoding/json"
66
"net/http"
7+
"runtime"
78
"sync"
89
"time"
910

@@ -122,7 +123,10 @@ func (l *logServerMapFetcher) updateEventMetadata() {
122123

123124
func (l *logServerMapFetcher) Close() {
124125
if l.runningBGThread {
125-
l.fetchTicker.Stop()
126+
// TODO: Remove this after we upgrade to go1.23
127+
if runtime.Version() < "go1.23" {
128+
l.fetchTicker.Stop()
129+
}
126130
// Send signal to background thread to perform final flush
127131
l.done <- true
128132
}

infra/logtransports/transportBackgroundIOWrapper.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ package logtransports
55

66
import (
77
"context"
8+
"runtime"
89
"sync"
910
"sync/atomic"
1011
"time"
@@ -241,7 +242,10 @@ func (t *transportBackgroundIOWrapper) Flush() error {
241242

242243
func (t *transportBackgroundIOWrapper) Close() {
243244
if t.runningBGThread {
244-
t.writeTicker.Stop()
245+
// TODO: Remove this after we upgrade to go1.23
246+
if runtime.Version() < "go1.23" {
247+
t.writeTicker.Stop()
248+
}
245249
// Send signal to background thread to perform final flush
246250
t.done <- true
247251
// Wait for the flush to finish

infra/sdkclient/version.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package sdkclient
22

3-
var sdkVersion = "1.6.0"
3+
var sdkVersion = "1.6.1"
44

55
func getSDKVersion() string {
66
return sdkVersion

0 commit comments

Comments
 (0)