Skip to content

Self-Service Tenant Signup and Extensible Tenant Provisioning Pipeline for ABP Commercial #25305

@ImranHugoWT

Description

@ImranHugoWT

Is there an existing issue for this?

  • I have searched the existing issues

Is your feature request related to a problem? Please describe the problem.

ABP Commercial provides strong multi-tenancy infrastructure, tenant management, and tenant resolution options, but it does not currently offer a first-class self-service tenant onboarding flow for SaaS applications.

In many real-world SaaS scenarios, tenants need to be able to sign themselves up, similar to the experience that existed in ASP.NET Zero. Today, this typically requires each customer to build a custom anonymous registration flow, custom tenant creation orchestration, and custom post-provisioning logic.

This becomes even more challenging when onboarding needs to trigger downstream platform actions. For example, if a solution uses domain or subdomain-based tenant resolution, creating a tenant is only one part of the process. The platform may also need to provision DNS entries, configure routing, seed external resources, or trigger background provisioning workflows.

At the moment, there is no standard built-in tenant self-signup pipeline with an official post-signup extensibility model, which means customers must repeatedly implement this themselves for a very common SaaS requirement.

Describe the solution you'd like

I would like to see ABP Commercial provide a built-in, optional tenant self-signup / self-service tenant registration feature, together with a well-defined post-signup extensibility pipeline.

Requested capabilities

1. Tenant self-signup flow

A first-class onboarding flow that allows a new tenant to register itself, including common SaaS onboarding requirements such as:

  • tenant name
  • tenancy name / slug
  • admin user details
  • optional edition / plan selection
  • optional email confirmation
  • optional host approval
  • support for extension fields through ABP extensibility mechanisms

2. Published onboarding events or hooks

A standard event-driven extensibility model that allows developers to hook into the tenant onboarding lifecycle.

Examples of useful events or hooks:

  • TenantSignupRequested
  • TenantCreating
  • TenantCreated
  • TenantAdminCreated
  • TenantProvisioningStarted
  • TenantProvisioningCompleted
  • TenantProvisioningFailed

3. Post-signup provisioning extensibility

After signup succeeds, consumers should be able to subscribe to the published event and execute custom provisioning logic.

Examples include:

  • DNS record provisioning
  • subdomain or custom domain setup
  • reverse proxy or ingress configuration
  • storage/container creation
  • external system seeding
  • search/index provisioning
  • onboarding email or webhook dispatch
  • background job kickoff

Example use case

A good example is when tenant resolution is based on the domain or subdomain URL.
After a tenant signs up successfully, it would be very useful if ABP published a standard event that could be handled by the application to provision the required DNS entry and related infrastructure automatically.

That would allow the onboarding flow to be cleanly extended without modifying ABP internals.

Why this would help

This would make ABP Commercial significantly more SaaS-friendly by:

  • reducing repeated custom implementation effort
  • improving upgradeability
  • encouraging a standard onboarding pattern
  • supporting real-world provisioning scenarios
  • restoring a capability many teams found useful in ASP.NET Zero

Minimum viable version

Even a minimal version would already be very valuable if it included:

  • a built-in public tenant self-signup flow
  • tenant + admin user creation orchestration
  • a published post-signup / post-tenant-created event
  • documentation showing how to extend the provisioning pipeline

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions