planetscale 0.3.1 → 0.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +9 -1
- data/.github/workflows/gem-push.yml +9 -2
- data/.licenses/go/github.com/matoous/go-nanoid/v2.dep.yml +34 -0
- data/.licenses/go/github.com/planetscale/planetscale-go/planetscale.dep.yml +1 -1
- data/.licenses/go/github.com/planetscale/sql-proxy/proxy.dep.yml +1 -1
- data/.licenses/go/go.uber.org/zap/buffer.dep.yml +1 -1
- data/.licenses/go/go.uber.org/zap/internal/bufferpool.dep.yml +1 -1
- data/.licenses/go/go.uber.org/zap/internal/color.dep.yml +1 -1
- data/.licenses/go/go.uber.org/zap/internal/exit.dep.yml +1 -1
- data/.licenses/go/go.uber.org/zap/zapcore.dep.yml +1 -1
- data/.licenses/go/go.uber.org/zap.dep.yml +1 -1
- data/README.md +2 -0
- data/controller.go +21 -36
- data/go.mod +4 -3
- data/go.sum +32 -18
- data/lib/planetscale/version.rb +1 -1
- data/lib/planetscale.rb +2 -3
- data/planetscale.gemspec +1 -1
- data/proxy/planetscale-darwin.h +1 -1
- data/proxy/planetscale-darwin.so +0 -0
- data/proxy/planetscale-linux.h +1 -1
- data/proxy/planetscale-linux.so +0 -0
- data/proxy.go +1 -5
- metadata +3 -345
- data/vendor/github.com/armon/circbuf/.gitignore +0 -22
- data/vendor/github.com/armon/circbuf/LICENSE +0 -20
- data/vendor/github.com/armon/circbuf/README.md +0 -28
- data/vendor/github.com/armon/circbuf/circbuf.go +0 -92
- data/vendor/github.com/armon/circbuf/go.mod +0 -1
- data/vendor/github.com/golang/protobuf/AUTHORS +0 -3
- data/vendor/github.com/golang/protobuf/CONTRIBUTORS +0 -3
- data/vendor/github.com/golang/protobuf/LICENSE +0 -28
- data/vendor/github.com/golang/protobuf/proto/buffer.go +0 -324
- data/vendor/github.com/golang/protobuf/proto/defaults.go +0 -63
- data/vendor/github.com/golang/protobuf/proto/deprecated.go +0 -113
- data/vendor/github.com/golang/protobuf/proto/discard.go +0 -58
- data/vendor/github.com/golang/protobuf/proto/extensions.go +0 -356
- data/vendor/github.com/golang/protobuf/proto/properties.go +0 -306
- data/vendor/github.com/golang/protobuf/proto/proto.go +0 -167
- data/vendor/github.com/golang/protobuf/proto/registry.go +0 -317
- data/vendor/github.com/golang/protobuf/proto/text_decode.go +0 -801
- data/vendor/github.com/golang/protobuf/proto/text_encode.go +0 -560
- data/vendor/github.com/golang/protobuf/proto/wire.go +0 -78
- data/vendor/github.com/golang/protobuf/proto/wrappers.go +0 -34
- data/vendor/github.com/gorilla/mux/AUTHORS +0 -8
- data/vendor/github.com/gorilla/mux/LICENSE +0 -27
- data/vendor/github.com/gorilla/mux/README.md +0 -805
- data/vendor/github.com/gorilla/mux/doc.go +0 -306
- data/vendor/github.com/gorilla/mux/go.mod +0 -3
- data/vendor/github.com/gorilla/mux/middleware.go +0 -74
- data/vendor/github.com/gorilla/mux/mux.go +0 -606
- data/vendor/github.com/gorilla/mux/regexp.go +0 -388
- data/vendor/github.com/gorilla/mux/route.go +0 -736
- data/vendor/github.com/gorilla/mux/test_helpers.go +0 -19
- data/vendor/github.com/hashicorp/go-cleanhttp/LICENSE +0 -363
- data/vendor/github.com/hashicorp/go-cleanhttp/README.md +0 -30
- data/vendor/github.com/hashicorp/go-cleanhttp/cleanhttp.go +0 -58
- data/vendor/github.com/hashicorp/go-cleanhttp/doc.go +0 -20
- data/vendor/github.com/hashicorp/go-cleanhttp/go.mod +0 -3
- data/vendor/github.com/hashicorp/go-cleanhttp/handlers.go +0 -48
- data/vendor/github.com/mitchellh/go-homedir/LICENSE +0 -21
- data/vendor/github.com/mitchellh/go-homedir/README.md +0 -14
- data/vendor/github.com/mitchellh/go-homedir/go.mod +0 -1
- data/vendor/github.com/mitchellh/go-homedir/homedir.go +0 -167
- data/vendor/github.com/pkg/errors/.gitignore +0 -24
- data/vendor/github.com/pkg/errors/.travis.yml +0 -10
- data/vendor/github.com/pkg/errors/LICENSE +0 -23
- data/vendor/github.com/pkg/errors/Makefile +0 -44
- data/vendor/github.com/pkg/errors/README.md +0 -59
- data/vendor/github.com/pkg/errors/appveyor.yml +0 -32
- data/vendor/github.com/pkg/errors/errors.go +0 -288
- data/vendor/github.com/pkg/errors/go113.go +0 -38
- data/vendor/github.com/pkg/errors/stack.go +0 -177
- data/vendor/github.com/planetscale/planetscale-go/LICENSE +0 -202
- data/vendor/github.com/planetscale/planetscale-go/planetscale/audit_logs.go +0 -136
- data/vendor/github.com/planetscale/planetscale-go/planetscale/backups.go +0 -139
- data/vendor/github.com/planetscale/planetscale-go/planetscale/branches.go +0 -252
- data/vendor/github.com/planetscale/planetscale-go/planetscale/certs.go +0 -166
- data/vendor/github.com/planetscale/planetscale-go/planetscale/client.go +0 -312
- data/vendor/github.com/planetscale/planetscale-go/planetscale/databases.go +0 -133
- data/vendor/github.com/planetscale/planetscale-go/planetscale/deploy_requests.go +0 -368
- data/vendor/github.com/planetscale/planetscale-go/planetscale/organizations.go +0 -103
- data/vendor/github.com/planetscale/planetscale-go/planetscale/regions.go +0 -52
- data/vendor/github.com/planetscale/planetscale-go/planetscale/service_tokens.go +0 -163
- data/vendor/github.com/planetscale/sql-proxy/LICENSE +0 -202
- data/vendor/github.com/planetscale/sql-proxy/proxy/client.go +0 -476
- data/vendor/github.com/planetscale/sql-proxy/proxy/tls_cache.go +0 -73
- data/vendor/go.uber.org/atomic/.codecov.yml +0 -19
- data/vendor/go.uber.org/atomic/.gitignore +0 -12
- data/vendor/go.uber.org/atomic/.travis.yml +0 -27
- data/vendor/go.uber.org/atomic/CHANGELOG.md +0 -76
- data/vendor/go.uber.org/atomic/LICENSE.txt +0 -19
- data/vendor/go.uber.org/atomic/Makefile +0 -78
- data/vendor/go.uber.org/atomic/README.md +0 -63
- data/vendor/go.uber.org/atomic/bool.go +0 -81
- data/vendor/go.uber.org/atomic/bool_ext.go +0 -53
- data/vendor/go.uber.org/atomic/doc.go +0 -23
- data/vendor/go.uber.org/atomic/duration.go +0 -82
- data/vendor/go.uber.org/atomic/duration_ext.go +0 -40
- data/vendor/go.uber.org/atomic/error.go +0 -51
- data/vendor/go.uber.org/atomic/error_ext.go +0 -39
- data/vendor/go.uber.org/atomic/float64.go +0 -76
- data/vendor/go.uber.org/atomic/float64_ext.go +0 -47
- data/vendor/go.uber.org/atomic/gen.go +0 -26
- data/vendor/go.uber.org/atomic/go.mod +0 -8
- data/vendor/go.uber.org/atomic/go.sum +0 -9
- data/vendor/go.uber.org/atomic/int32.go +0 -102
- data/vendor/go.uber.org/atomic/int64.go +0 -102
- data/vendor/go.uber.org/atomic/nocmp.go +0 -35
- data/vendor/go.uber.org/atomic/string.go +0 -54
- data/vendor/go.uber.org/atomic/string_ext.go +0 -43
- data/vendor/go.uber.org/atomic/uint32.go +0 -102
- data/vendor/go.uber.org/atomic/uint64.go +0 -102
- data/vendor/go.uber.org/atomic/value.go +0 -31
- data/vendor/go.uber.org/multierr/.codecov.yml +0 -15
- data/vendor/go.uber.org/multierr/.gitignore +0 -4
- data/vendor/go.uber.org/multierr/.travis.yml +0 -23
- data/vendor/go.uber.org/multierr/CHANGELOG.md +0 -60
- data/vendor/go.uber.org/multierr/LICENSE.txt +0 -19
- data/vendor/go.uber.org/multierr/Makefile +0 -42
- data/vendor/go.uber.org/multierr/README.md +0 -23
- data/vendor/go.uber.org/multierr/error.go +0 -449
- data/vendor/go.uber.org/multierr/glide.yaml +0 -8
- data/vendor/go.uber.org/multierr/go.mod +0 -8
- data/vendor/go.uber.org/multierr/go.sum +0 -11
- data/vendor/go.uber.org/multierr/go113.go +0 -52
- data/vendor/go.uber.org/zap/.codecov.yml +0 -17
- data/vendor/go.uber.org/zap/.gitignore +0 -32
- data/vendor/go.uber.org/zap/.readme.tmpl +0 -109
- data/vendor/go.uber.org/zap/CHANGELOG.md +0 -492
- data/vendor/go.uber.org/zap/CODE_OF_CONDUCT.md +0 -75
- data/vendor/go.uber.org/zap/CONTRIBUTING.md +0 -75
- data/vendor/go.uber.org/zap/FAQ.md +0 -164
- data/vendor/go.uber.org/zap/LICENSE.txt +0 -19
- data/vendor/go.uber.org/zap/Makefile +0 -73
- data/vendor/go.uber.org/zap/README.md +0 -134
- data/vendor/go.uber.org/zap/array.go +0 -320
- data/vendor/go.uber.org/zap/buffer/buffer.go +0 -141
- data/vendor/go.uber.org/zap/buffer/pool.go +0 -49
- data/vendor/go.uber.org/zap/checklicense.sh +0 -17
- data/vendor/go.uber.org/zap/config.go +0 -264
- data/vendor/go.uber.org/zap/doc.go +0 -113
- data/vendor/go.uber.org/zap/encoder.go +0 -79
- data/vendor/go.uber.org/zap/error.go +0 -80
- data/vendor/go.uber.org/zap/field.go +0 -549
- data/vendor/go.uber.org/zap/flag.go +0 -39
- data/vendor/go.uber.org/zap/glide.yaml +0 -34
- data/vendor/go.uber.org/zap/global.go +0 -168
- data/vendor/go.uber.org/zap/global_go112.go +0 -26
- data/vendor/go.uber.org/zap/global_prego112.go +0 -26
- data/vendor/go.uber.org/zap/go.mod +0 -14
- data/vendor/go.uber.org/zap/go.sum +0 -54
- data/vendor/go.uber.org/zap/http_handler.go +0 -132
- data/vendor/go.uber.org/zap/internal/bufferpool/bufferpool.go +0 -31
- data/vendor/go.uber.org/zap/internal/color/color.go +0 -44
- data/vendor/go.uber.org/zap/internal/exit/exit.go +0 -64
- data/vendor/go.uber.org/zap/level.go +0 -132
- data/vendor/go.uber.org/zap/logger.go +0 -348
- data/vendor/go.uber.org/zap/options.go +0 -148
- data/vendor/go.uber.org/zap/sink.go +0 -161
- data/vendor/go.uber.org/zap/stacktrace.go +0 -85
- data/vendor/go.uber.org/zap/sugar.go +0 -315
- data/vendor/go.uber.org/zap/time.go +0 -27
- data/vendor/go.uber.org/zap/writer.go +0 -99
- data/vendor/go.uber.org/zap/zapcore/buffered_write_syncer.go +0 -188
- data/vendor/go.uber.org/zap/zapcore/clock.go +0 -50
- data/vendor/go.uber.org/zap/zapcore/console_encoder.go +0 -161
- data/vendor/go.uber.org/zap/zapcore/core.go +0 -113
- data/vendor/go.uber.org/zap/zapcore/doc.go +0 -24
- data/vendor/go.uber.org/zap/zapcore/encoder.go +0 -443
- data/vendor/go.uber.org/zap/zapcore/entry.go +0 -264
- data/vendor/go.uber.org/zap/zapcore/error.go +0 -132
- data/vendor/go.uber.org/zap/zapcore/field.go +0 -233
- data/vendor/go.uber.org/zap/zapcore/hook.go +0 -68
- data/vendor/go.uber.org/zap/zapcore/increase_level.go +0 -66
- data/vendor/go.uber.org/zap/zapcore/json_encoder.go +0 -534
- data/vendor/go.uber.org/zap/zapcore/level.go +0 -175
- data/vendor/go.uber.org/zap/zapcore/level_strings.go +0 -46
- data/vendor/go.uber.org/zap/zapcore/marshaler.go +0 -61
- data/vendor/go.uber.org/zap/zapcore/memory_encoder.go +0 -179
- data/vendor/go.uber.org/zap/zapcore/sampler.go +0 -208
- data/vendor/go.uber.org/zap/zapcore/tee.go +0 -81
- data/vendor/go.uber.org/zap/zapcore/write_syncer.go +0 -122
- data/vendor/golang.org/x/net/AUTHORS +0 -3
- data/vendor/golang.org/x/net/CONTRIBUTORS +0 -3
- data/vendor/golang.org/x/net/LICENSE +0 -27
- data/vendor/golang.org/x/net/PATENTS +0 -22
- data/vendor/golang.org/x/net/context/context.go +0 -56
- data/vendor/golang.org/x/net/context/ctxhttp/ctxhttp.go +0 -71
- data/vendor/golang.org/x/net/context/go17.go +0 -73
- data/vendor/golang.org/x/net/context/go19.go +0 -21
- data/vendor/golang.org/x/net/context/pre_go17.go +0 -301
- data/vendor/golang.org/x/net/context/pre_go19.go +0 -110
- data/vendor/golang.org/x/oauth2/.travis.yml +0 -13
- data/vendor/golang.org/x/oauth2/AUTHORS +0 -3
- data/vendor/golang.org/x/oauth2/CONTRIBUTING.md +0 -26
- data/vendor/golang.org/x/oauth2/CONTRIBUTORS +0 -3
- data/vendor/golang.org/x/oauth2/LICENSE +0 -27
- data/vendor/golang.org/x/oauth2/README.md +0 -36
- data/vendor/golang.org/x/oauth2/go.mod +0 -9
- data/vendor/golang.org/x/oauth2/go.sum +0 -361
- data/vendor/golang.org/x/oauth2/internal/client_appengine.go +0 -14
- data/vendor/golang.org/x/oauth2/internal/doc.go +0 -6
- data/vendor/golang.org/x/oauth2/internal/oauth2.go +0 -37
- data/vendor/golang.org/x/oauth2/internal/token.go +0 -294
- data/vendor/golang.org/x/oauth2/internal/transport.go +0 -33
- data/vendor/golang.org/x/oauth2/oauth2.go +0 -381
- data/vendor/golang.org/x/oauth2/token.go +0 -178
- data/vendor/golang.org/x/oauth2/transport.go +0 -89
- data/vendor/google.golang.org/appengine/LICENSE +0 -202
- data/vendor/google.golang.org/appengine/internal/api.go +0 -678
- data/vendor/google.golang.org/appengine/internal/api_classic.go +0 -169
- data/vendor/google.golang.org/appengine/internal/api_common.go +0 -123
- data/vendor/google.golang.org/appengine/internal/app_id.go +0 -28
- data/vendor/google.golang.org/appengine/internal/base/api_base.pb.go +0 -308
- data/vendor/google.golang.org/appengine/internal/base/api_base.proto +0 -33
- data/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.pb.go +0 -4367
- data/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.proto +0 -551
- data/vendor/google.golang.org/appengine/internal/identity.go +0 -55
- data/vendor/google.golang.org/appengine/internal/identity_classic.go +0 -61
- data/vendor/google.golang.org/appengine/internal/identity_flex.go +0 -11
- data/vendor/google.golang.org/appengine/internal/identity_vm.go +0 -134
- data/vendor/google.golang.org/appengine/internal/internal.go +0 -110
- data/vendor/google.golang.org/appengine/internal/log/log_service.pb.go +0 -1313
- data/vendor/google.golang.org/appengine/internal/log/log_service.proto +0 -150
- data/vendor/google.golang.org/appengine/internal/main.go +0 -16
- data/vendor/google.golang.org/appengine/internal/main_common.go +0 -7
- data/vendor/google.golang.org/appengine/internal/main_vm.go +0 -69
- data/vendor/google.golang.org/appengine/internal/metadata.go +0 -60
- data/vendor/google.golang.org/appengine/internal/net.go +0 -56
- data/vendor/google.golang.org/appengine/internal/regen.sh +0 -40
- data/vendor/google.golang.org/appengine/internal/remote_api/remote_api.pb.go +0 -361
- data/vendor/google.golang.org/appengine/internal/remote_api/remote_api.proto +0 -44
- data/vendor/google.golang.org/appengine/internal/transaction.go +0 -115
- data/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.pb.go +0 -527
- data/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.proto +0 -64
- data/vendor/google.golang.org/appengine/urlfetch/urlfetch.go +0 -210
- data/vendor/google.golang.org/protobuf/AUTHORS +0 -3
- data/vendor/google.golang.org/protobuf/CONTRIBUTORS +0 -3
- data/vendor/google.golang.org/protobuf/LICENSE +0 -27
- data/vendor/google.golang.org/protobuf/PATENTS +0 -22
- data/vendor/google.golang.org/protobuf/encoding/prototext/decode.go +0 -773
- data/vendor/google.golang.org/protobuf/encoding/prototext/doc.go +0 -7
- data/vendor/google.golang.org/protobuf/encoding/prototext/encode.go +0 -371
- data/vendor/google.golang.org/protobuf/encoding/protowire/wire.go +0 -538
- data/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go +0 -318
- data/vendor/google.golang.org/protobuf/internal/descopts/options.go +0 -29
- data/vendor/google.golang.org/protobuf/internal/detrand/rand.go +0 -69
- data/vendor/google.golang.org/protobuf/internal/encoding/defval/default.go +0 -213
- data/vendor/google.golang.org/protobuf/internal/encoding/messageset/messageset.go +0 -241
- data/vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go +0 -207
- data/vendor/google.golang.org/protobuf/internal/encoding/text/decode.go +0 -665
- data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_number.go +0 -190
- data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_string.go +0 -161
- data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_token.go +0 -373
- data/vendor/google.golang.org/protobuf/internal/encoding/text/doc.go +0 -29
- data/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go +0 -265
- data/vendor/google.golang.org/protobuf/internal/errors/errors.go +0 -89
- data/vendor/google.golang.org/protobuf/internal/errors/is_go112.go +0 -39
- data/vendor/google.golang.org/protobuf/internal/errors/is_go113.go +0 -12
- data/vendor/google.golang.org/protobuf/internal/filedesc/build.go +0 -158
- data/vendor/google.golang.org/protobuf/internal/filedesc/desc.go +0 -631
- data/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go +0 -471
- data/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go +0 -704
- data/vendor/google.golang.org/protobuf/internal/filedesc/desc_list.go +0 -450
- data/vendor/google.golang.org/protobuf/internal/filedesc/desc_list_gen.go +0 -356
- data/vendor/google.golang.org/protobuf/internal/filedesc/placeholder.go +0 -107
- data/vendor/google.golang.org/protobuf/internal/filetype/build.go +0 -297
- data/vendor/google.golang.org/protobuf/internal/flags/flags.go +0 -24
- data/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_disable.go +0 -9
- data/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_enable.go +0 -9
- data/vendor/google.golang.org/protobuf/internal/genid/any_gen.go +0 -34
- data/vendor/google.golang.org/protobuf/internal/genid/api_gen.go +0 -106
- data/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go +0 -829
- data/vendor/google.golang.org/protobuf/internal/genid/doc.go +0 -11
- data/vendor/google.golang.org/protobuf/internal/genid/duration_gen.go +0 -34
- data/vendor/google.golang.org/protobuf/internal/genid/empty_gen.go +0 -19
- data/vendor/google.golang.org/protobuf/internal/genid/field_mask_gen.go +0 -31
- data/vendor/google.golang.org/protobuf/internal/genid/goname.go +0 -25
- data/vendor/google.golang.org/protobuf/internal/genid/map_entry.go +0 -16
- data/vendor/google.golang.org/protobuf/internal/genid/source_context_gen.go +0 -31
- data/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go +0 -116
- data/vendor/google.golang.org/protobuf/internal/genid/timestamp_gen.go +0 -34
- data/vendor/google.golang.org/protobuf/internal/genid/type_gen.go +0 -184
- data/vendor/google.golang.org/protobuf/internal/genid/wrappers.go +0 -13
- data/vendor/google.golang.org/protobuf/internal/genid/wrappers_gen.go +0 -175
- data/vendor/google.golang.org/protobuf/internal/impl/api_export.go +0 -177
- data/vendor/google.golang.org/protobuf/internal/impl/checkinit.go +0 -141
- data/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go +0 -223
- data/vendor/google.golang.org/protobuf/internal/impl/codec_field.go +0 -830
- data/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go +0 -5637
- data/vendor/google.golang.org/protobuf/internal/impl/codec_map.go +0 -388
- data/vendor/google.golang.org/protobuf/internal/impl/codec_map_go111.go +0 -37
- data/vendor/google.golang.org/protobuf/internal/impl/codec_map_go112.go +0 -11
- data/vendor/google.golang.org/protobuf/internal/impl/codec_message.go +0 -217
- data/vendor/google.golang.org/protobuf/internal/impl/codec_messageset.go +0 -123
- data/vendor/google.golang.org/protobuf/internal/impl/codec_reflect.go +0 -209
- data/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go +0 -557
- data/vendor/google.golang.org/protobuf/internal/impl/codec_unsafe.go +0 -17
- data/vendor/google.golang.org/protobuf/internal/impl/convert.go +0 -496
- data/vendor/google.golang.org/protobuf/internal/impl/convert_list.go +0 -141
- data/vendor/google.golang.org/protobuf/internal/impl/convert_map.go +0 -121
- data/vendor/google.golang.org/protobuf/internal/impl/decode.go +0 -276
- data/vendor/google.golang.org/protobuf/internal/impl/encode.go +0 -201
- data/vendor/google.golang.org/protobuf/internal/impl/enum.go +0 -21
- data/vendor/google.golang.org/protobuf/internal/impl/extension.go +0 -156
- data/vendor/google.golang.org/protobuf/internal/impl/legacy_enum.go +0 -219
- data/vendor/google.golang.org/protobuf/internal/impl/legacy_export.go +0 -92
- data/vendor/google.golang.org/protobuf/internal/impl/legacy_extension.go +0 -176
- data/vendor/google.golang.org/protobuf/internal/impl/legacy_file.go +0 -81
- data/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go +0 -558
- data/vendor/google.golang.org/protobuf/internal/impl/merge.go +0 -176
- data/vendor/google.golang.org/protobuf/internal/impl/merge_gen.go +0 -209
- data/vendor/google.golang.org/protobuf/internal/impl/message.go +0 -276
- data/vendor/google.golang.org/protobuf/internal/impl/message_reflect.go +0 -465
- data/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go +0 -543
- data/vendor/google.golang.org/protobuf/internal/impl/message_reflect_gen.go +0 -249
- data/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go +0 -178
- data/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go +0 -174
- data/vendor/google.golang.org/protobuf/internal/impl/validate.go +0 -576
- data/vendor/google.golang.org/protobuf/internal/impl/weak.go +0 -74
- data/vendor/google.golang.org/protobuf/internal/order/order.go +0 -89
- data/vendor/google.golang.org/protobuf/internal/order/range.go +0 -115
- data/vendor/google.golang.org/protobuf/internal/pragma/pragma.go +0 -29
- data/vendor/google.golang.org/protobuf/internal/set/ints.go +0 -58
- data/vendor/google.golang.org/protobuf/internal/strs/strings.go +0 -196
- data/vendor/google.golang.org/protobuf/internal/strs/strings_pure.go +0 -27
- data/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go +0 -94
- data/vendor/google.golang.org/protobuf/internal/version/version.go +0 -79
- data/vendor/google.golang.org/protobuf/proto/checkinit.go +0 -71
- data/vendor/google.golang.org/protobuf/proto/decode.go +0 -278
- data/vendor/google.golang.org/protobuf/proto/decode_gen.go +0 -603
- data/vendor/google.golang.org/protobuf/proto/doc.go +0 -94
- data/vendor/google.golang.org/protobuf/proto/encode.go +0 -319
- data/vendor/google.golang.org/protobuf/proto/encode_gen.go +0 -97
- data/vendor/google.golang.org/protobuf/proto/equal.go +0 -167
- data/vendor/google.golang.org/protobuf/proto/extension.go +0 -92
- data/vendor/google.golang.org/protobuf/proto/merge.go +0 -139
- data/vendor/google.golang.org/protobuf/proto/messageset.go +0 -93
- data/vendor/google.golang.org/protobuf/proto/proto.go +0 -43
- data/vendor/google.golang.org/protobuf/proto/proto_methods.go +0 -19
- data/vendor/google.golang.org/protobuf/proto/proto_reflect.go +0 -19
- data/vendor/google.golang.org/protobuf/proto/reset.go +0 -43
- data/vendor/google.golang.org/protobuf/proto/size.go +0 -97
- data/vendor/google.golang.org/protobuf/proto/size_gen.go +0 -55
- data/vendor/google.golang.org/protobuf/proto/wrappers.go +0 -29
- data/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go +0 -276
- data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go +0 -248
- data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go +0 -286
- data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go +0 -374
- data/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go +0 -252
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/methods.go +0 -77
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go +0 -504
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/source.go +0 -128
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go +0 -461
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go +0 -665
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go +0 -285
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_pure.go +0 -59
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go +0 -411
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe.go +0 -98
- data/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go +0 -869
- data/vendor/google.golang.org/protobuf/runtime/protoiface/legacy.go +0 -15
- data/vendor/google.golang.org/protobuf/runtime/protoiface/methods.go +0 -167
- data/vendor/google.golang.org/protobuf/runtime/protoimpl/impl.go +0 -44
- data/vendor/google.golang.org/protobuf/runtime/protoimpl/version.go +0 -56
- data/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go +0 -4039
- data/vendor/modules.txt +0 -79
|
@@ -1,252 +0,0 @@
|
|
|
1
|
-
package planetscale
|
|
2
|
-
|
|
3
|
-
import (
|
|
4
|
-
"context"
|
|
5
|
-
"fmt"
|
|
6
|
-
"net/http"
|
|
7
|
-
"time"
|
|
8
|
-
|
|
9
|
-
"github.com/pkg/errors"
|
|
10
|
-
)
|
|
11
|
-
|
|
12
|
-
// DatabaseBranch represents a database branch.
|
|
13
|
-
type DatabaseBranch struct {
|
|
14
|
-
Name string `json:"name"`
|
|
15
|
-
ParentBranch string `json:"parent_branch"`
|
|
16
|
-
Region Region `json:"region"`
|
|
17
|
-
CreatedAt time.Time `json:"created_at"`
|
|
18
|
-
UpdatedAt time.Time `json:"updated_at"`
|
|
19
|
-
Status string `json:"status,omitempty"`
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
type databaseBranchesResponse struct {
|
|
23
|
-
Branches []*DatabaseBranch `json:"data"`
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
// CreateDatabaseBranchRequest encapsulates the request for creating a new
|
|
27
|
-
// database branch
|
|
28
|
-
type CreateDatabaseBranchRequest struct {
|
|
29
|
-
Organization string `json:"-"`
|
|
30
|
-
Database string `json:"-"`
|
|
31
|
-
Region string `json:"region,omitempty"`
|
|
32
|
-
Name string `json:"name"`
|
|
33
|
-
ParentBranch string `json:"parent_branch"`
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
// ListDatabaseBranchesRequest encapsulates the request for listing the branches
|
|
37
|
-
// of a database.
|
|
38
|
-
type ListDatabaseBranchesRequest struct {
|
|
39
|
-
Organization string
|
|
40
|
-
Database string
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
// GetDatabaseBranchRequest encapsulates the request for getting a single
|
|
44
|
-
// database branch for a database.
|
|
45
|
-
type GetDatabaseBranchRequest struct {
|
|
46
|
-
Organization string
|
|
47
|
-
Database string
|
|
48
|
-
Branch string
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
// DeleteDatabaseRequest encapsulates the request for deleting a database branch
|
|
52
|
-
// from a database.
|
|
53
|
-
type DeleteDatabaseBranchRequest struct {
|
|
54
|
-
Organization string
|
|
55
|
-
Database string
|
|
56
|
-
Branch string
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
// GetDatabaseBranchStatusRequest encapsulates the request for getting the status
|
|
60
|
-
// of a specific database branch.
|
|
61
|
-
type GetDatabaseBranchStatusRequest struct {
|
|
62
|
-
Organization string
|
|
63
|
-
Database string
|
|
64
|
-
Branch string
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
// DiffBranchRequest encapsulates a request for getting the diff for a branch.
|
|
68
|
-
type DiffBranchRequest struct {
|
|
69
|
-
Organization string `json:"-"`
|
|
70
|
-
Database string `json:"-"`
|
|
71
|
-
Branch string `json:"-"`
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
// BranchSchemaRequest encapsulates a request for getting a branch's schema.
|
|
75
|
-
type BranchSchemaRequest struct {
|
|
76
|
-
Organization string `json:"-"`
|
|
77
|
-
Database string `json:"-"`
|
|
78
|
-
Branch string `json:"-"`
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
// RefreshSchemaRequest reflects the request needed to refresh a schema
|
|
82
|
-
// snapshot on a database branch.
|
|
83
|
-
type RefreshSchemaRequest struct {
|
|
84
|
-
Organization string `json:"-"`
|
|
85
|
-
Database string `json:"-"`
|
|
86
|
-
Branch string `json:"-"`
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
// DatabaseBranchesService is an interface for communicating with the PlanetScale
|
|
90
|
-
// Database Branch API endpoint.
|
|
91
|
-
type DatabaseBranchesService interface {
|
|
92
|
-
Create(context.Context, *CreateDatabaseBranchRequest) (*DatabaseBranch, error)
|
|
93
|
-
List(context.Context, *ListDatabaseBranchesRequest) ([]*DatabaseBranch, error)
|
|
94
|
-
Get(context.Context, *GetDatabaseBranchRequest) (*DatabaseBranch, error)
|
|
95
|
-
Delete(context.Context, *DeleteDatabaseBranchRequest) error
|
|
96
|
-
GetStatus(context.Context, *GetDatabaseBranchStatusRequest) (*DatabaseBranchStatus, error)
|
|
97
|
-
Diff(context.Context, *DiffBranchRequest) ([]*Diff, error)
|
|
98
|
-
Schema(context.Context, *BranchSchemaRequest) ([]*Diff, error)
|
|
99
|
-
RefreshSchema(context.Context, *RefreshSchemaRequest) error
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
type databaseBranchesService struct {
|
|
103
|
-
client *Client
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
// DatabaseBranchStatus represents the status of a PlanetScale database branch.
|
|
107
|
-
type DatabaseBranchStatus struct {
|
|
108
|
-
Ready bool `json:"ready"`
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
var _ DatabaseBranchesService = &databaseBranchesService{}
|
|
112
|
-
|
|
113
|
-
func NewDatabaseBranchesService(client *Client) *databaseBranchesService {
|
|
114
|
-
return &databaseBranchesService{
|
|
115
|
-
client: client,
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
func (d *databaseBranchesService) Diff(ctx context.Context, diffReq *DiffBranchRequest) ([]*Diff, error) {
|
|
120
|
-
path := fmt.Sprintf("%s/diff", databaseBranchAPIPath(diffReq.Organization, diffReq.Database, diffReq.Branch))
|
|
121
|
-
req, err := d.client.newRequest(http.MethodGet, path, nil)
|
|
122
|
-
if err != nil {
|
|
123
|
-
return nil, errors.Wrap(err, "error creating http request")
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
diffs := &diffResponse{}
|
|
127
|
-
if err := d.client.do(ctx, req, &diffs); err != nil {
|
|
128
|
-
return nil, err
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
return diffs.Diffs, nil
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
// schemaResponse returns the schemas
|
|
135
|
-
type schemaResponse struct {
|
|
136
|
-
Schemas []*Diff `json:"data"`
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
func (d *databaseBranchesService) Schema(ctx context.Context, schemaReq *BranchSchemaRequest) ([]*Diff, error) {
|
|
140
|
-
path := fmt.Sprintf("%s/schema", databaseBranchAPIPath(schemaReq.Organization, schemaReq.Database, schemaReq.Branch))
|
|
141
|
-
req, err := d.client.newRequest(http.MethodGet, path, nil)
|
|
142
|
-
if err != nil {
|
|
143
|
-
return nil, errors.Wrap(err, "error creating http request")
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
schemas := &schemaResponse{}
|
|
147
|
-
if err := d.client.do(ctx, req, &schemas); err != nil {
|
|
148
|
-
return nil, err
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
return schemas.Schemas, nil
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
// Create creates a new branch for an organization's database.
|
|
155
|
-
func (d *databaseBranchesService) Create(ctx context.Context, createReq *CreateDatabaseBranchRequest) (*DatabaseBranch, error) {
|
|
156
|
-
path := databaseBranchesAPIPath(createReq.Organization, createReq.Database)
|
|
157
|
-
|
|
158
|
-
req, err := d.client.newRequest(http.MethodPost, path, createReq)
|
|
159
|
-
if err != nil {
|
|
160
|
-
return nil, errors.Wrap(err, "error creating request for branch database")
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
dbBranch := &DatabaseBranch{}
|
|
164
|
-
if err := d.client.do(ctx, req, &dbBranch); err != nil {
|
|
165
|
-
return nil, err
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
return dbBranch, nil
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
// Get returns a database branch for an organization's database.
|
|
172
|
-
func (d *databaseBranchesService) Get(ctx context.Context, getReq *GetDatabaseBranchRequest) (*DatabaseBranch, error) {
|
|
173
|
-
path := fmt.Sprintf("%s/%s", databaseBranchesAPIPath(getReq.Organization, getReq.Database), getReq.Branch)
|
|
174
|
-
req, err := d.client.newRequest(http.MethodGet, path, nil)
|
|
175
|
-
if err != nil {
|
|
176
|
-
return nil, errors.Wrap(err, "error creating http request")
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
dbBranch := &DatabaseBranch{}
|
|
180
|
-
if err := d.client.do(ctx, req, &dbBranch); err != nil {
|
|
181
|
-
return nil, err
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
return dbBranch, nil
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
// List returns all of the branches for an organization's
|
|
188
|
-
// database.
|
|
189
|
-
func (d *databaseBranchesService) List(ctx context.Context, listReq *ListDatabaseBranchesRequest) ([]*DatabaseBranch, error) {
|
|
190
|
-
req, err := d.client.newRequest(http.MethodGet, databaseBranchesAPIPath(listReq.Organization, listReq.Database), nil)
|
|
191
|
-
if err != nil {
|
|
192
|
-
return nil, errors.Wrap(err, "error creating http request")
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
dbBranches := &databaseBranchesResponse{}
|
|
196
|
-
if err := d.client.do(ctx, req, &dbBranches); err != nil {
|
|
197
|
-
return nil, err
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
return dbBranches.Branches, nil
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
// Delete deletes a database branch from an organization's database.
|
|
204
|
-
func (d *databaseBranchesService) Delete(ctx context.Context, deleteReq *DeleteDatabaseBranchRequest) error {
|
|
205
|
-
path := fmt.Sprintf("%s/%s", databaseBranchesAPIPath(deleteReq.Organization, deleteReq.Database), deleteReq.Branch)
|
|
206
|
-
req, err := d.client.newRequest(http.MethodDelete, path, nil)
|
|
207
|
-
if err != nil {
|
|
208
|
-
return errors.Wrap(err, "error creating request for delete branch")
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
err = d.client.do(ctx, req, nil)
|
|
212
|
-
return err
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
// Status returns the status of a specific database branch
|
|
216
|
-
func (d *databaseBranchesService) GetStatus(ctx context.Context, statusReq *GetDatabaseBranchStatusRequest) (*DatabaseBranchStatus, error) {
|
|
217
|
-
path := fmt.Sprintf("%s/%s/status", databaseBranchesAPIPath(statusReq.Organization, statusReq.Database), statusReq.Branch)
|
|
218
|
-
req, err := d.client.newRequest(http.MethodGet, path, nil)
|
|
219
|
-
if err != nil {
|
|
220
|
-
return nil, errors.Wrap(err, "error creating request for branch status")
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
status := &DatabaseBranchStatus{}
|
|
224
|
-
if err := d.client.do(ctx, req, &status); err != nil {
|
|
225
|
-
return nil, err
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
return status, nil
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
// RefreshSchema refreshes the schema for a
|
|
232
|
-
func (d *databaseBranchesService) RefreshSchema(ctx context.Context, refreshReq *RefreshSchemaRequest) error {
|
|
233
|
-
path := fmt.Sprintf("%s/%s/refresh-schema", databaseBranchesAPIPath(refreshReq.Organization, refreshReq.Database), refreshReq.Branch)
|
|
234
|
-
req, err := d.client.newRequest(http.MethodPost, path, nil)
|
|
235
|
-
if err != nil {
|
|
236
|
-
return errors.Wrap(err, "error creating http request")
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
if err := d.client.do(ctx, req, nil); err != nil {
|
|
240
|
-
return err
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
return nil
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
func databaseBranchesAPIPath(org, db string) string {
|
|
247
|
-
return fmt.Sprintf("%s/%s/branches", databasesAPIPath(org), db)
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
func databaseBranchAPIPath(org, db, branch string) string {
|
|
251
|
-
return fmt.Sprintf("%s/%s", databaseBranchesAPIPath(org, db), branch)
|
|
252
|
-
}
|
|
@@ -1,166 +0,0 @@
|
|
|
1
|
-
package planetscale
|
|
2
|
-
|
|
3
|
-
import (
|
|
4
|
-
"bytes"
|
|
5
|
-
"context"
|
|
6
|
-
"crypto"
|
|
7
|
-
"crypto/ecdsa"
|
|
8
|
-
"crypto/rand"
|
|
9
|
-
"crypto/rsa"
|
|
10
|
-
"crypto/tls"
|
|
11
|
-
"crypto/x509"
|
|
12
|
-
"crypto/x509/pkix"
|
|
13
|
-
"encoding/pem"
|
|
14
|
-
"fmt"
|
|
15
|
-
"net/http"
|
|
16
|
-
)
|
|
17
|
-
|
|
18
|
-
type CreateCertificateRequest struct {
|
|
19
|
-
Organization string
|
|
20
|
-
DatabaseName string
|
|
21
|
-
Branch string
|
|
22
|
-
|
|
23
|
-
// PrivateKey is used to generate the Certificate Sign Request (CSR).
|
|
24
|
-
PrivateKey crypto.PrivateKey
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
type CertificatesService interface {
|
|
28
|
-
Create(context.Context, *CreateCertificateRequest) (*Cert, error)
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
type Cert struct {
|
|
32
|
-
ClientCert tls.Certificate
|
|
33
|
-
CACerts []*x509.Certificate
|
|
34
|
-
RemoteAddr string
|
|
35
|
-
Ports RemotePorts
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
type RemotePorts struct {
|
|
39
|
-
Proxy int
|
|
40
|
-
MySQL int
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
type certificatesService struct {
|
|
44
|
-
client *Client
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
var _ CertificatesService = &certificatesService{}
|
|
48
|
-
|
|
49
|
-
func NewCertsService(client *Client) *certificatesService {
|
|
50
|
-
return &certificatesService{
|
|
51
|
-
client: client,
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
func (c *certificatesService) Create(ctx context.Context, r *CreateCertificateRequest) (*Cert, error) {
|
|
56
|
-
cn := fmt.Sprintf("%s/%s/%s", r.Organization, r.DatabaseName, r.Branch)
|
|
57
|
-
subj := pkix.Name{
|
|
58
|
-
CommonName: cn,
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
switch priv := r.PrivateKey.(type) {
|
|
62
|
-
case *rsa.PrivateKey:
|
|
63
|
-
case *ecdsa.PrivateKey:
|
|
64
|
-
default:
|
|
65
|
-
return nil, fmt.Errorf("unsupported key type: %T, only supports ECDSA and RSA private keys", priv)
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
template := x509.CertificateRequest{
|
|
69
|
-
Version: 1,
|
|
70
|
-
Subject: subj,
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
csrBytes, err := x509.CreateCertificateRequest(rand.Reader, &template, r.PrivateKey)
|
|
74
|
-
if err != nil {
|
|
75
|
-
return nil, fmt.Errorf("unable to create csr: %s", err)
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
var buf bytes.Buffer
|
|
79
|
-
err = pem.Encode(&buf, &pem.Block{Type: "CERTIFICATE REQUEST", Bytes: csrBytes})
|
|
80
|
-
if err != nil {
|
|
81
|
-
return nil, fmt.Errorf("unable to encode the CSR to PEM: %s", err)
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
var certReq = struct {
|
|
85
|
-
CSR string `json:"csr"`
|
|
86
|
-
}{
|
|
87
|
-
CSR: buf.String(),
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
req, err := c.client.newRequest(
|
|
91
|
-
http.MethodPost,
|
|
92
|
-
fmt.Sprintf("%s/%s/branches/%s/create-certificate",
|
|
93
|
-
databasesAPIPath(r.Organization),
|
|
94
|
-
r.DatabaseName,
|
|
95
|
-
r.Branch,
|
|
96
|
-
),
|
|
97
|
-
certReq,
|
|
98
|
-
)
|
|
99
|
-
if err != nil {
|
|
100
|
-
return nil, fmt.Errorf("error creating request for create certificates: %s", err)
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
var cr struct {
|
|
104
|
-
Certificate string `json:"certificate"`
|
|
105
|
-
CertificateChain string `json:"certificate_chain"`
|
|
106
|
-
RemoteAddr string `json:"remote_addr"`
|
|
107
|
-
Ports map[string]int `json:"ports"`
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
err = c.client.do(ctx, req, &cr)
|
|
111
|
-
if err != nil {
|
|
112
|
-
return nil, err
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
caCerts, err := parseCerts(cr.CertificateChain)
|
|
116
|
-
if err != nil {
|
|
117
|
-
return nil, fmt.Errorf("parsing certificate chain failed: %s", err)
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
privateKeyBytes, err := x509.MarshalPKCS8PrivateKey(r.PrivateKey)
|
|
121
|
-
if err != nil {
|
|
122
|
-
return nil, fmt.Errorf("failed to marshal private key: %s", err)
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
privateKey := pem.EncodeToMemory(
|
|
126
|
-
&pem.Block{
|
|
127
|
-
Type: "PRIVATE KEY",
|
|
128
|
-
Bytes: privateKeyBytes,
|
|
129
|
-
},
|
|
130
|
-
)
|
|
131
|
-
|
|
132
|
-
clientCert, err := tls.X509KeyPair([]byte(cr.Certificate), privateKey)
|
|
133
|
-
if err != nil {
|
|
134
|
-
return nil, fmt.Errorf("parsing client certificate failed: %s", err)
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
return &Cert{
|
|
138
|
-
ClientCert: clientCert,
|
|
139
|
-
CACerts: caCerts,
|
|
140
|
-
RemoteAddr: cr.RemoteAddr,
|
|
141
|
-
Ports: RemotePorts{
|
|
142
|
-
Proxy: cr.Ports["proxy"],
|
|
143
|
-
MySQL: cr.Ports["mysql-tls"],
|
|
144
|
-
},
|
|
145
|
-
}, nil
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
func parseCerts(pemCert string) ([]*x509.Certificate, error) {
|
|
149
|
-
perCertBlock := []byte(pemCert)
|
|
150
|
-
var certs []*x509.Certificate
|
|
151
|
-
|
|
152
|
-
for {
|
|
153
|
-
var certBlock *pem.Block
|
|
154
|
-
certBlock, perCertBlock = pem.Decode(perCertBlock)
|
|
155
|
-
if certBlock == nil {
|
|
156
|
-
break
|
|
157
|
-
}
|
|
158
|
-
cert, err := x509.ParseCertificate(certBlock.Bytes)
|
|
159
|
-
if err != nil {
|
|
160
|
-
return nil, err
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
certs = append(certs, cert)
|
|
164
|
-
}
|
|
165
|
-
return certs, nil
|
|
166
|
-
}
|