/ydb-go-yc

Primary LanguageGoApache License 2.0Apache-2.0

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(ctx), // auth inside cloud (virual machine or yandex function)
    )