app

package
v0.0.13 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 25, 2026 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Overview

Package app provides namespace lifecycle management for Fabric-X. It handles creation, deployment, endorsement, and querying of namespaces.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AdminApp

AdminApp implements Application interface with provider-based dependencies.

func (*AdminApp) CreateNamespace

func (*AdminApp) CreateNamespace(_ context.Context, input *DeployNamespaceInput) (*DeployNamespaceOutput, error)

CreateNamespace generates a namespace transaction without endorsement or submission. Returns transaction ID and unsigned transaction for later processing.

func (*AdminApp) DeployNamespace

func (d *AdminApp) DeployNamespace(
	ctx context.Context,
	input *DeployNamespaceInput,
) (*DeployNamespaceOutput, TxStatus, error)

DeployNamespace creates a namespace transaction and submits it to the ordering service.

func (*AdminApp) EndorseTransaction

func (d *AdminApp) EndorseTransaction(
	ctx context.Context,
	txID string,
	tx *applicationpb.Tx,
) (*applicationpb.Tx, error)

EndorseTransaction receives a transaction as input and endorses it.

func (*AdminApp) ListNamespaces

func (d *AdminApp) ListNamespaces(ctx context.Context) ([]NamespaceQueryResult, error)

ListNamespaces queries the committer service for installed namespaces. It connects to the query service, retrieves all namespace policies, and formats the Output showing namespace names, versions, and policy data in hexadecimal.

func (*AdminApp) MergeTransactions

func (*AdminApp) MergeTransactions(_ context.Context, txs []*applicationpb.Tx) (*applicationpb.Tx, error)

MergeTransactions combines multiple transactions into a single transaction. Useful for collecting endorsements from multiple organizations.

func (*AdminApp) SubmitTransaction

func (d *AdminApp) SubmitTransaction(ctx context.Context, txID string, tx *applicationpb.Tx) error

SubmitTransaction receives a transaction and sends it to the ordering service.

func (*AdminApp) SubmitTransactionWithWait

func (d *AdminApp) SubmitTransactionWithWait(ctx context.Context, txID string, tx *applicationpb.Tx) (TxStatus, error)

SubmitTransactionWithWait receives a transaction and sends it to the ordering service.

type Application

type Application interface {
	DeployNamespace(ctx context.Context, input *DeployNamespaceInput) (*DeployNamespaceOutput, TxStatus, error)
	ListNamespaces(ctx context.Context) ([]NamespaceQueryResult, error)
	EndorseTransaction(ctx context.Context, txID string, tx *applicationpb.Tx) (*applicationpb.Tx, error)
	SubmitTransaction(ctx context.Context, txID string, tx *applicationpb.Tx) error
	SubmitTransactionWithWait(ctx context.Context, txID string, tx *applicationpb.Tx) (TxStatus, error)
	MergeTransactions(ctx context.Context, txs []*applicationpb.Tx) (*applicationpb.Tx, error)
}

Application defines the core namespace management operations.

type DeployNamespaceInput

type DeployNamespaceInput struct {
	NsID    string       `json:"name" yaml:"name"`
	Version int          `json:"version" yaml:"version"`
	Policy  PolicyConfig `json:"policy" yaml:"policy"`

	Endorse bool
	Submit  bool
	Wait    bool
}

DeployNamespaceInput contains parameters for namespace deployment.

func (*DeployNamespaceInput) Validate

func (c *DeployNamespaceInput) Validate(vctx validation.Context) error

Validate validates namespace configuration. Checks namespace ID, version, and policy.

type DeployNamespaceOutput

type DeployNamespaceOutput struct {
	TxID string
	Tx   *applicationpb.Tx
}

DeployNamespaceOutput contains the generated transaction and ID.

type MSPPolicyConfig

type MSPPolicyConfig struct {
	Expression string `mapstructure:"expression"`
}

MSPPolicyConfig holds MSP-based policy configuration.

func (*MSPPolicyConfig) Validate

func (c *MSPPolicyConfig) Validate(ctx validation.Context) error

Validate validates MSP policy configuration. Checks that the policy expression is valid DSL syntax.

type NamespaceQueryResult

type NamespaceQueryResult struct {
	NsID    string `json:"name" yaml:"name"`
	Version int    `json:"version" yaml:"version"`
	Policy  []byte `json:"policy" yaml:"policy"`
}

NamespaceQueryResult represents a namespace retrieved from the query service.

type PolicyConfig

type PolicyConfig struct {
	Type string `mapstructure:"type"` // "msp" | "threshold"`

	MSP       *MSPPolicyConfig       `mapstructure:"msp"`
	Threshold *ThresholdPolicyConfig `mapstructure:"threshold"`
}

PolicyConfig defines the endorsement policy for a namespace.

func (*PolicyConfig) Set

func (c *PolicyConfig) Set(policy string)

Set parses and configures the policy from a string. Supports "threshold:<path>" format or MSP DSL expressions.

func (*PolicyConfig) Validate

func (c *PolicyConfig) Validate(ctx validation.Context) error

Validate validates policy configuration based on policy type.

type ThresholdPolicyConfig

type ThresholdPolicyConfig struct {
	VerificationKeyPath string `mapstructure:"verificationKeyPath"`
}

ThresholdPolicyConfig holds threshold ECDSA policy configuration.

func (*ThresholdPolicyConfig) Validate

func (c *ThresholdPolicyConfig) Validate(vctx validation.Context) error

Validate validates threshold policy configuration. Ensures the verification key path exists and is accessible.

type TxStatus

type TxStatus = int

TxStatus represents the finality status of a submitted transaction.

const UnknownStatus TxStatus = 0

UnknownStatus indicates transaction status is not yet determined.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL