Requirements
The flagd daemon seems to make use of the gocloud library for blob syncs. The documentation for s3blob.URLOpener, https://pkg.go.dev/gocloud.dev/blob/s3blob#URLOpener, states that the argument use_path_style is supported by s3blob. However, the flagd daemon does not seem to offer a clean mechanism to enable the use_path_style option.
I don't have a strong opinion on what such a mechanism should look like, but the following comes to mind:
Consume an environment in flagd similar to how the various "AWS_"-prefixed environment variables are consumed within s3blob.
Or, perhaps allow for query parameter parsing in flagd such that those arguments can be passed onto s3blob. For example,
flagd start --uri "s3://my-bucket/my-flag.json?use_path_style=true"
For reference, the s3blob documentation states the following:
The following S3-specific query options are also supported:
- ssetype: The type of server side encryption used (AES256, aws:kms, aws:kms:dsse)
- kmskeyid: The KMS key ID for server side encryption
- accelerate: A value of "true" uses the S3 Transfer Accleration endpoints
- use_path_style: A value of true sets the UsePathStyle option.
- s3ForcePathStyle: Same as use_path_style, for backwards compatibility with V1.
- disable_https: A value of true disables HTTPS in the Endpoint options.
Requirements
The flagd daemon seems to make use of the gocloud library for blob syncs. The documentation for s3blob.URLOpener, https://pkg.go.dev/gocloud.dev/blob/s3blob#URLOpener, states that the argument use_path_style is supported by s3blob. However, the flagd daemon does not seem to offer a clean mechanism to enable the use_path_style option.
I don't have a strong opinion on what such a mechanism should look like, but the following comes to mind:
Consume an environment in flagd similar to how the various "AWS_"-prefixed environment variables are consumed within s3blob.
Or, perhaps allow for query parameter parsing in flagd such that those arguments can be passed onto s3blob. For example,
flagd start --uri "s3://my-bucket/my-flag.json?use_path_style=true"For reference, the s3blob documentation states the following:
The following S3-specific query options are also supported: