Documentation
¶
Overview ¶
Package app provides namespace lifecycle management for Fabric-X. It handles creation, deployment, endorsement, and querying of namespaces.
Index ¶
- type AdminApp
- func (*AdminApp) CreateNamespace(_ context.Context, input *DeployNamespaceInput) (*DeployNamespaceOutput, error)
- func (d *AdminApp) DeployNamespace(ctx context.Context, input *DeployNamespaceInput) (*DeployNamespaceOutput, TxStatus, error)
- func (d *AdminApp) EndorseTransaction(ctx context.Context, txID string, tx *applicationpb.Tx) (*applicationpb.Tx, error)
- func (d *AdminApp) ListNamespaces(ctx context.Context) ([]NamespaceQueryResult, error)
- func (*AdminApp) MergeTransactions(_ context.Context, txs []*applicationpb.Tx) (*applicationpb.Tx, error)
- func (d *AdminApp) SubmitTransaction(ctx context.Context, txID string, tx *applicationpb.Tx) error
- func (d *AdminApp) SubmitTransactionWithWait(ctx context.Context, txID string, tx *applicationpb.Tx) (TxStatus, error)
- type Application
- type DeployNamespaceInput
- type DeployNamespaceOutput
- type MSPPolicyConfig
- type NamespaceQueryResult
- type PolicyConfig
- type ThresholdPolicyConfig
- type TxStatus
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AdminApp ¶
type AdminApp struct {
Validators validation.Context
MspProvider *provider.Provider[msp.SigningIdentity, *config.MSPConfig]
QueryProvider *provider.Provider[adapters.QueryClient, *config.QueriesConfig]
OrdererProvider *provider.Provider[adapters.OrdererClient, *config.OrdererConfig]
NotificationProvider *provider.Provider[adapters.NotificationClient, *config.NotificationsConfig]
}
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 ¶
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.