~ knotless Search/
↑↓ move↵ open⇧↵ all results
0
0
main
34 lines · 755 B Raw History
package market

import (
	"context"
	"crypto/sha256"
	"encoding/hex"
	"errors"
	"strings"
)

const (
	CapabilitySessionOwners = "market.sessionowners"

	SessionOwnerLabel = "apps.socialweb.computer/session-owner"

	SessionOwnerIdentityPrefix = "owner"

	SessionOwnerRequesterPrefix = "requester"

	DefaultMaxSessionOwners = 64
)

var ErrSessionOwnersFull = errors.New("market: every signed-in account slot of this ssh gateway is taken")

type SessionOwnerIntents interface {
	EnsureSessionOwner(ctx context.Context, did string) error

	DeleteSessionOwner(ctx context.Context, did string) error
}

func SessionOwnerName(prefix, did string) string {
	sum := sha256.Sum256([]byte(strings.TrimSpace(did)))
	return prefix + "-" + hex.EncodeToString(sum[:8])
}