Categorygithub.com/ydb-platform/ydb-go-yc
modulepackage
0.12.3
Repository: https://github.com/ydb-platform/ydb-go-yc.git
Documentation: pkg.go.dev

# README

ydb-go-yc

License PkgGoDev tests lint Go Report Card codecov Code lines WebSite

Helpers to connect to YDB inside yandex-cloud.

Table of contents

  1. Overview
  2. About semantic versioning
  3. Prerequisites
  4. Installation
  5. Usage

Overview

Currently package provides helpers to connect to YDB inside yandex-cloud.

About semantic versioning

We follow the SemVer 2.0.0. In particular, we provide backward compatibility in the MAJOR releases. New features without loss of backward compatibility appear on the MINOR release. In the minor version, the patch number starts from 0. Bug fixes and internal changes are released with the third digit (PATCH) in the version.

There are, however, some changes with the loss of backward compatibility that we consider to be MINOR:

  • extension or modification of internal ydb-go-yc interfaces. We understand that this will break the compatibility of custom implementations of the ydb-go-yc internal interfaces. But we believe that the internal interfaces of ydb-go-yc are implemented well enough that they do not require custom implementation. We are working to ensure that all internal interfaces have limited access only inside ydb-go-yc.
  • major changes to (including removal of) the public interfaces and types that have been previously exported by ydb-go-yc. We understand that these changes will break the backward compatibility of early adopters of these interfaces. However, these changes are generally coordinated with early adopters and have the concise interfacing with ydb-go-yc as a goal.

Internal interfaces outside from internal directory are marked with comment such as

// Warning: only for internal usage inside ydb-go-yc

We publish the planned breaking MAJOR changes:

  • via the comment Deprecated in the code indicating what should be used instead
  • through the file NEXT_MAJOR_RELEASE.md

Prerequisites

Requires Go 1.13 or later.

Installation

go get -u github.com/ydb-platform/ydb-go-yc

Usage

import (
    yc "github.com/ydb-platform/ydb-go-yc"
)
...
    db, err := ydb.Open(ctx, os.Getenv("YDB_CONNECTION_STRING"),
        yc.WithInternalCA(),
        yc.WithServiceAccountKeyFileCredentials("~/.ydb/sa.json"), // auth from service account key file
        // yc.WithMetadataCredentials(), // auth inside cloud (virual machine or yandex function)
    )
    

# Functions

No description provided by the author
No description provided by the author
No description provided by the author
WithAudience set provided audience.
No description provided by the author
WithCertPool set provided certPool.
WithCertPoolFile try set root certPool from provided cert file path.
WithDefaultEndpoint set endpoint with default value.
WithEndpoint set provided endpoint.
WithFallbackCredentials makes fallback credentials if primary credentials are failed.
WithInsecureSkipVerify set insecureSkipVerify to true which force client accepts any TLS certificate presented by the iam server and any host name in that certificate.
WithInternalCA append internal yandex-cloud certs.
WithIssuer set provided issuer.
WithKeyID set provided keyID.
No description provided by the author
No description provided by the author
WithPrivateKey set provided private key.
WithPrivateKeyFile try set key from provided private key file path.
No description provided by the author
No description provided by the author
WithServiceFile try set key, keyID, issuer from provided service account file path.
WithServiceKey try set key, keyID, issuer from provided service account key.
WithSourceInfo set sourceInfo.
WithSystemCertPool try set certPool with system root certificates.
WithTokenTTL set provided tokenTTL duration.

# Type aliases

No description provided by the author