appsandbox

package
v1.0.0-beta.228 Latest Latest
Warning

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

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

Documentation

Index

Constants

View Source
const (
	TargetPaymentStatusMetadataKey = "openmeter.io/sandbox/target-payment-status"

	TargetPaymentStatusPaid           = "paid"
	TargetPaymentStatusFailed         = "failed"
	TargetPaymentStatusUncollectible  = "uncollectible"
	TargetPaymentStatusActionRequired = "action_required"
)

Variables

View Source
var (
	MarketplaceListing = app.MarketplaceListing{
		Type:        app.AppTypeSandbox,
		Name:        "Sandbox",
		Description: "Sandbox can be used to test OpenMeter without external connections.",
		Capabilities: []app.Capability{
			CollectPaymentCapability,
			CalculateTaxCapability,
			InvoiceCustomerCapability,
		},
		InstallMethods: []app.InstallMethod{
			app.InstallMethodNoCredentials,
		},
	}

	CollectPaymentCapability = app.Capability{
		Type:        app.CapabilityTypeCollectPayments,
		Key:         "sandbox_collect_payment",
		Name:        "Payment",
		Description: "Process payments",
	}

	CalculateTaxCapability = app.Capability{
		Type:        app.CapabilityTypeCalculateTax,
		Key:         "sandbox_calculate_tax",
		Name:        "Calculate Tax",
		Description: "Calculate tax for a payment",
	}

	InvoiceCustomerCapability = app.Capability{
		Type:        app.CapabilityTypeInvoiceCustomers,
		Key:         "sandbox_invoice_customer",
		Name:        "Invoice Customer",
		Description: "Invoice a customer",
	}
)
View Source
var ErrSimulatedPaymentFailure = billing.NewValidationError("simulated_payment_failure", "simulated payment failure")
View Source
var (
	InvoiceSequenceNumber = billing.SequenceDefinition{
		Prefix:         "OM-SANDBOX",
		SuffixTemplate: "{{.CustomerPrefix}}-{{.NextSequenceNumber}}",
		Scope:          "invoices/app/sandbox",
	}
)

Functions

func AutoProvision

func AutoProvision(ctx context.Context, input AutoProvisionInput) (app.App, error)

AutoProvision creates a new default sandbox app if it doesn't exist, otherwise returns the existing one.

We install the sandbox app by default in the system, so that the user can start trying out the system right away.

func MockWithAppType

func MockWithAppType(t app.AppType) mockConfigOption

Types

type App

type App struct {
	Meta
	// contains filtered or unexported fields
}

func (App) DeleteCustomerData

func (a App) DeleteCustomerData(ctx context.Context, input app.DeleteAppInstanceCustomerDataInput) error

func (App) DeleteStandardInvoice

func (a App) DeleteStandardInvoice(ctx context.Context, invoice billing.StandardInvoice) error

func (App) FinalizeStandardInvoice

func (a App) FinalizeStandardInvoice(ctx context.Context, invoice billing.StandardInvoice) (*billing.FinalizeStandardInvoiceResult, error)

func (App) GetCustomerData

func (a App) GetCustomerData(ctx context.Context, input app.GetAppInstanceCustomerDataInput) (app.CustomerData, error)

func (App) GetEventAppData

func (a App) GetEventAppData() (app.EventAppData, error)

func (App) PostAdvanceStandardInvoiceHook

func (a App) PostAdvanceStandardInvoiceHook(ctx context.Context, invoice billing.StandardInvoice) (*billing.PostAdvanceHookResult, error)

func (App) UpdateAppConfig

func (a App) UpdateAppConfig(ctx context.Context, input app.AppConfigUpdate) error

func (App) UpsertCustomerData

func (a App) UpsertCustomerData(ctx context.Context, input app.UpsertAppInstanceCustomerDataInput) error

func (App) UpsertStandardInvoice

func (a App) UpsertStandardInvoice(ctx context.Context, invoice billing.StandardInvoice) (*billing.UpsertStandardInvoiceResult, error)

func (App) ValidateCustomer

func (a App) ValidateCustomer(ctx context.Context, customer *customer.Customer, capabilities []app.CapabilityType) error

func (App) ValidateStandardInvoice

func (a App) ValidateStandardInvoice(ctx context.Context, invoice billing.StandardInvoice) error

type AppFactory

type AppFactory interface {
	NewApp(ctx context.Context, appBase app.AppBase) (app.App, error)
}

type AutoProvisionInput

type AutoProvisionInput struct {
	Namespace  string
	AppService app.Service
}

func (AutoProvisionInput) Validate

func (a AutoProvisionInput) Validate() error

type Config

type Config struct {
	AppService     app.Service
	BillingService billing.Service
}

func (Config) Validate

func (c Config) Validate() error

type Configuration

type Configuration struct{}

func (Configuration) Validate

func (c Configuration) Validate() error

type CustomerData

type CustomerData struct{}

func (CustomerData) Validate

func (c CustomerData) Validate() error

type Factory

type Factory struct {
	// contains filtered or unexported fields
}

func NewFactory

func NewFactory(config Config) (*Factory, error)

func (*Factory) InstallAppWithAPIKey

func (a *Factory) InstallAppWithAPIKey(ctx context.Context, input app.AppFactoryInstallAppWithAPIKeyInput) (app.App, error)

func (*Factory) NewApp

func (a *Factory) NewApp(_ context.Context, appBase app.AppBase) (app.App, error)

Factory

func (*Factory) UninstallApp

func (a *Factory) UninstallApp(ctx context.Context, input app.UninstallAppInput) error

type Meta

type Meta struct {
	app.AppBase
}

func (*Meta) FromEventAppData

func (m *Meta) FromEventAppData(event app.EventApp) error

type MockApp

type MockApp struct {
	// contains filtered or unexported fields
}

func NewMockApp

func NewMockApp(_ *testing.T) *MockApp

func (*MockApp) AssertExpectations

func (m *MockApp) AssertExpectations(t *testing.T)

func (*MockApp) DeleteCustomerData

func (m *MockApp) DeleteCustomerData(ctx context.Context, input app.DeleteAppInstanceCustomerDataInput) error

func (*MockApp) DeleteStandardInvoice

func (m *MockApp) DeleteStandardInvoice(ctx context.Context, invoice billing.StandardInvoice) error

func (*MockApp) FinalizeStandardInvoice

func (m *MockApp) FinalizeStandardInvoice(ctx context.Context, invoice billing.StandardInvoice) (*billing.FinalizeStandardInvoiceResult, error)

func (*MockApp) GetCustomerData

func (m *MockApp) GetCustomerData(ctx context.Context, input app.GetAppInstanceCustomerDataInput) (app.CustomerData, error)

func (*MockApp) NewApp

func (m *MockApp) NewApp(_ context.Context, app app.AppBase) (app.App, error)

func (*MockApp) OnDeleteStandardInvoice

func (m *MockApp) OnDeleteStandardInvoice(err error)

func (*MockApp) OnFinalizeStandardInvoice

func (m *MockApp) OnFinalizeStandardInvoice(result *billing.FinalizeStandardInvoiceResult)

func (*MockApp) OnUpsertStandardInvoice

func (m *MockApp) OnUpsertStandardInvoice(cb InvoiceUpsertCallback)

func (*MockApp) OnValidateCustomer

func (m *MockApp) OnValidateCustomer(err error)

func (*MockApp) OnValidateStandardInvoice

func (m *MockApp) OnValidateStandardInvoice(err error)

func (*MockApp) Reset

func (m *MockApp) Reset(t *testing.T)

func (*MockApp) UpdateAppConfig

func (m *MockApp) UpdateAppConfig(ctx context.Context, input app.AppConfigUpdate) error

func (*MockApp) UpsertCustomerData

func (m *MockApp) UpsertCustomerData(ctx context.Context, input app.UpsertAppInstanceCustomerDataInput) error

func (*MockApp) UpsertStandardInvoice

func (m *MockApp) UpsertStandardInvoice(ctx context.Context, invoice billing.StandardInvoice) (*billing.UpsertStandardInvoiceResult, error)

func (*MockApp) ValidateCustomer

func (m *MockApp) ValidateCustomer(appID string, customer *customer.Customer, capabilities []app.CapabilityType) error

func (*MockApp) ValidateStandardInvoice

func (m *MockApp) ValidateStandardInvoice(appID string, invoice billing.StandardInvoice) error

type MockableFactory

type MockableFactory struct {
	*Factory
	// contains filtered or unexported fields
}

func NewMockableFactory

func NewMockableFactory(_ *testing.T, config Config, opts ...mockConfigOption) (*MockableFactory, error)

func (*MockableFactory) DisableMock

func (m *MockableFactory) DisableMock()

func (*MockableFactory) EnableMock

func (m *MockableFactory) EnableMock(t *testing.T) *MockApp

func (*MockableFactory) NewApp

func (m *MockableFactory) NewApp(ctx context.Context, appBase app.AppBase) (app.App, error)

Jump to

Keyboard shortcuts

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