Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
This repository was archived by the owner on Mar 12, 2020. It is now read-only.
/ licensing Public archive

Library for interacting with Docker issued product licenses

License

Apache-2.0, Unknown licenses found

Licenses found

Apache-2.0
LICENSE
Unknown
license.go
Notifications You must be signed in to change notification settings

docker-archive/licensing

Repository files navigation

docker/licensing

Overview

licensing is a library for interacting with Docker issued product licenses. It facilitates user's authentication to the Docker Hub, provides a mechanism for retrieving a user's existing docker-issued subscriptions/licenses, detects and verifies locally stored licenses, and can be used to provision trial licenses for Docker Enterprise Edition.

License

docker/licensing is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.

Usage

package main
import (
	"context"
	"fmt"
	"net/url"
	"github.com/docker/licensing"
	"github.com/docker/licensing/model"
)
const (
	hubURL = "https://hub.docker.com"
	pubKey = "LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0Ka2lkOiBKN0xEOjY3VlI6TDVIWjpVN0JBOjJPNEc6NEFMMzpPRjJOOkpIR0I6RUZUSDo1Q1ZROk1GRU86QUVJVAoKTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUF5ZEl5K2xVN283UGNlWSs0K3MrQwpRNU9FZ0N5RjhDeEljUUlXdUs4NHBJaVpjaVk2NzMweUNZbndMU0tUbHcrVTZVQy9RUmVXUmlvTU5ORTVEczVUCllFWGJHRzZvbG0ycWRXYkJ3Y0NnKzJVVUgvT2NCOVd1UDZnUlBIcE1GTXN4RHpXd3ZheThKVXVIZ1lVTFVwbTEKSXYrbXE3bHA1blEvUnhyVDBLWlJBUVRZTEVNRWZHd20zaE1PL2dlTFBTK2hnS1B0SUhsa2c2L1djb3hUR29LUAo3OWQvd2FIWXhHTmw3V2hTbmVpQlN4YnBiUUFLazIxbGc3OThYYjd2WnlFQVRETXJSUjlNZUU2QWRqNUhKcFkzCkNveVJBUENtYUtHUkNLNHVvWlNvSXUwaEZWbEtVUHliYncwMDBHTyt3YTJLTjhVd2dJSW0waTVJMXVXOUdrcTQKempCeTV6aGdxdVVYYkc5YldQQU9ZcnE1UWE4MUR4R2NCbEp5SFlBcCtERFBFOVRHZzR6WW1YakpueFpxSEVkdQpHcWRldlo4WE1JMHVrZmtHSUkxNHdVT2lNSUlJclhsRWNCZi80Nkk4Z1FXRHp4eWNaZS9KR1grTEF1YXlYcnlyClVGZWhWTlVkWlVsOXdYTmFKQitrYUNxejVRd2FSOTNzR3crUVNmdEQwTnZMZTdDeU9IK0U2dmc2U3QvTmVUdmcKdjhZbmhDaVhJbFo4SE9mSXdOZTd0RUYvVWN6NU9iUHlrbTN0eWxyTlVqdDBWeUFtdHRhY1ZJMmlHaWhjVVBybQprNGxWSVo3VkQvTFNXK2k3eW9TdXJ0cHNQWGNlMnBLRElvMzBsSkdoTy8zS1VtbDJTVVpDcXpKMXlFbUtweXNICjVIRFc5Y3NJRkNBM2RlQWpmWlV2TjdVQ0F3RUFBUT09Ci0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLQo="
	username = "docker username"
	password = "your password"
	appFeature = "jump"
)
func panicOnErr(err error) {
	if err != nil {
		panic(err)
	}
}
func main() {
	hubURI, err := url.Parse(hubURL)
	panicOnErr(err)
	// setup client
	c, err := licensing.New(&licensing.Config{
		BaseURI: *hubURI,
		HTTPClient: nil,
		PublicKeys: []string{pubKey},
	})
	panicOnErr(err)
	// grab token
	ctx := context.Background()
	token, err := c.LoginViaAuth(ctx, username, password)
	panicOnErr(err)
	// fetch dockerID, if not already known
	id, err := c.GetHubUserByName(ctx, username)
	panicOnErr(err)
	subs, err := c.ListSubscriptions(ctx, token, id.ID)
	panicOnErr(err)
	// find first available subscription with given feature
	var featuredSub *model.Subscription
	for _, sub := range subs {
		_, ok := sub.GetFeatureValue(appFeature)
		if ok {
			featuredSub = sub
			break
		}
	}
	if featuredSub == nil {
		fmt.Println("account has no subscriptions with the desired feature entitlements")
		return
	}
	// download license file for this subscription
	subLic, err := c.DownloadLicenseFromHub(ctx, token, featuredSub.ID)
	panicOnErr(err)
	// verify license is issued by corresponding keypair and is not expired
	licFile, err := c.VerifyLicense(ctx, *subLic)
	panicOnErr(err)
	fmt.Println("license summary: ", c.SummarizeLicense(licFile))
}

About

Library for interacting with Docker issued product licenses

Resources

License

Apache-2.0, Unknown licenses found

Licenses found

Apache-2.0
LICENSE
Unknown
license.go

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 7

AltStyle によって変換されたページ (->オリジナル) /