Activities of "Belen.molinaMA"

Hello,

Thank you very much for the detailed explanation.

Using the options input with a custom windowClass and applying the width override in global styles resolved the issue perfectly. We can now control the width of a single <abp-modal> without affecting other modals, exactly as needed.

Really appreciate the clear guidance and references provided.

Best regards,

Hello ABP Team,

We are working with ABP Framework (Angular UI) and using the built-in <abp-modal> component.

We need to increase the width of a single modal only, without affecting other modals globally.

🔍 What we are trying to achieve

Make one specific modal wider (XL / ~90% viewport width)

Keep all other modals unchanged

Use supported / recommended ABP approach

Avoid hacks or deprecated Angular features

This modal contains complex content (tabs + editable tables), so the default width is too restrictive for a good UX.

🧪 What we have already tried

size="xl"

<abp-modal size="xl">

➡️ No effect.

dialogClass input

<abp-modal [dialogClass]="'modal-xl'">

➡️ Angular compilation error: Can't bind to 'dialogClass' since it isn't a known property of 'abp-modal'.

CSS via component SCSS

.concept-modal-xl .modal-dialog { max-width: 90vw; }

➡️ No effect due to ViewEncapsulation and modal being rendered outside the component DOM.

CSS via global styles (styles.scss / theme.scss)

.modal-xl .modal-dialog { max-width: 90vw; }

➡️ Works only if applied globally, but this affects all modals, which we want to avoid.

modalClass attribute (as per documentation)

<abp-modal modalClass="modal-xl">

➡️ No visual change in width.

📖 Documentation referenced

https://abp.io/docs/latest/framework/ui/angular/modal

We followed the documentation, but we couldn’t find a clear, working example of how to change the width of only one specific <abp-modal>.

❓ Our questions

What is the official and supported way to change the width of a specific <abp-modal> in ABP Angular?

Is there a way to pass custom options to the underlying NgbModal (e.g. windowClass, size, or similar)?

If this is not supported, what is the recommended alternative for complex editors that require wider layouts?

🛠 Environment

ABP Framework: latest

UI: Angular

Theme: Lepton

Bootstrap: v5

Thank you very much. We appreciate guidance on the correct ABP-recommended approach.

Best regards.

Hello, I need assistance with a multi-tenant issue that I can no longer resolve.

I reverted all recent changes and restored the project to the exact state it had when tenant-specific databases were working correctly. However, even after fully rolling back everything, the system still does not use the tenant databases.

The behavior is the following:

The system successfully creates the database for each tenant when the connection string is defined.

The connection strings appear correctly in the tables SaasTenants and SaasTenantConnectionStrings, including a valid “Default” entry for each tenant.

All entities implement IMultiTenant, and no DbContext contains hard-coded connection strings.

Despite this, ABP always writes and reads data from the Host database, completely ignoring the tenant’s “Default” connection string.

Tenant databases remain empty because they are never used.

This issue persists even after restoring the project to the original version where everything previously worked.

No matter which tenant I log in as, EF Core operations (insert/update/select) still target the Host DB.

In short:

ABP creates the tenant databases, but the application never switches to them — all data continues going to the Host DB even after reverting every change.

I would appreciate guidance on what could cause ABP to stop switching the connection string per tenant, even after a full rollback.

We are using ABP 8.x (or 9/10.x if applicable) with the SaaS module enabled and database-per-tenant architecture. The tenant is correctly created, and the table SaasTenantConnectionStrings contains a valid "Default" connection string for that TenantId.

However, during runtime ABP is not switching the connection string. All data is always saved into the Host database regardless of the tenant connection string.

What we already verified

The tenant exists in SaasTenants.

The connection string exists in SaasTenantConnectionStrings with Name = "Default".

The connection string points to a different database and that database exists.

Permissions and authentication are working correctly.

Requests are successfully authenticated and the application resolves the user identity, but data is still persisted in the Host DB.

Expected behavior

ABP should switch the connection string when a tenant is resolved, and EF Core should write data into the tenant's isolated database.

Actual behavior

ABP always uses the Host database even though a tenant-specific connection string is present. No exceptions are thrown. EF Core always connects to the Host DB.

Additional notes

The issue occurs even when calling the application service methods that use CurrentTenant.

We confirmed that the connection string for the tenant is correct by testing it manually.

We also checked the DbContext configuration and module configuration, but ABP still ignores the tenant connection string.

No domain resolution or pipeline configuration seems to affect the problem; the behavior is consistent.

Request

We need assistance validating:

Whether ABP is correctly resolving the tenant in the current HTTP request.

Whether EF Core is correctly switching the connection string for the DbContext.

Whether there is any misconfiguration in our DbContext, module setup, or multitenancy configuration that prevents ABP from using the tenant connection string.

Please advise how to debug or what additional logs to produce so we can identify why ABP always uses the Host database.

The ABP application host cannot reach the remote SQL Server because the required TCP port is not open / reachable.

This explains the behavior:

Using localhost works → The API host can reach the SQL instance immediately.

Using the remote connection string fails → ABP rejects the string as “invalid” because the host cannot establish a TCP connection to the SQL server.

It does not depend on permissions → I can save other connection strings (e.g., localhost) in the same session with the same user.

The PUT endpoint only fails for the remote connection → The same user, same role, same claims, same token can save local DBs successfully.

The error appears ONLY when the SQL server is remote → This confirms that the network path, not ABP permissions, is blocking the connection.

So, the 403 response from:

PUT /api/saas/tenants/{id}/connection-strings

is triggered because ABP internally considers the connection string invalid, due to the SQL host being unreachable from the application server (port closed, SQL Browser unreachable, or firewall blocking).

Once the required SQL port is opened and reachable, the connection string should save correctly.

Hello ABP Team,

I would like to request support regarding two related issues with SaaS tenant connection strings in ABP Commercial.

  1. The main issue: the connection string is validated but never saved

When using the Angular UI to configure a tenant's connection string:

The endpoint CheckConnectionStringAsync is called correctly.

The backend validates the connection successfully (returns true).

However, when clicking Save, the Angular application never sends the PUT request:

PUT /api/saas/tenants/{id}/connection-strings

This PUT action never appears in browser Network logs, and therefore the backend never receives it.

Permissions are not the problem — my admin role has all SaaS tenant permissions including ManageConnectionStrings.

Questions:

Under what conditions does the Angular SaaS UI skip the PUT request?

Does the UI require the connection string name to always be "Default"?

If the database already contains a connection string with a different name (e.g., "Financial"), does the UI ignore it and therefore never trigger the update?

Is this a known issue in the current ABP Angular version?

  1. Question regarding SQL Server remote instances (critical):

I am trying to use a remote SQL Server instance with the following format:

Server=45.xxx.xxx.xxx\SQLEXPRESS2014;Database=Financial;User Id=xxx;Password=xxx;TrustServerCertificate=True;

The CheckConnectionString endpoint returns TRUE, so the connection works.

However, I want to confirm the expected/official behavior:

Questions:

Does ABP support SQL Server remote instances using IP\InstanceName format, or is ABP officially limited to localhost connections?

If ABP supports remote SQL servers, what is the correct recommended connection-string format for:

Named instances?

SQL Browser disabled?

Specific ports?

When using:

Server=45.xxx.xxx.xxx\InstanceName;

should ABP automatically resolve the SQL Browser port, or must the instance be accessed using:

Server=45.xxx.xxx.xxx,PortNumber;

Is there any known limitation in ABP SaaS tenant connection-string checking related to remote or named SQL Server instances?

Additional context

ABP Commercial 8.x

Frontend: Angular

Backend: ASP.NET Core

Multi-tenancy enabled (Database-per-tenant mode)

CheckConnectionString works fine in all tests

The actual save/PUT never happens

I can provide a SQL dump of SaasTenantConnectionStrings if needed

Thank you very much, I will wait for your guidance.

Thank you, everything is working correctly now.

One more question: Where can I find the backend logs generated by ABP? I would like to inspect runtime errors coming from the HttpApi.Host and the application layer.

Thank you — the checklist you provided resolved my issue for now. Running the DbMigrator first and aligning all connection strings fixed the inconsistent initialization and the missing admin/client records.

I have one additional question:

How should I properly regenerate the client-side proxies after creating a new application service?

In previous ABP versions I used commands like:

abp generate-proxy

or (for Angular)

abp generate-proxy -t ng

But I want to confirm the correct and recommended way in the current framework version, especially when using Angular + HttpApi.Host.

  • Should I run the command from the Angular project folder or from the solution root?
  • Are there any configuration steps required to make sure the new services appear in the proxy generator?
  • How do I force regeneration if the proxy is not detecting new endpoints?

Thanks again for your help — your previous guidance was very useful.

Hello, I am working on an ABP project (version Pro - Team License). Yesterday everything worked perfectly: I created new entities, generated migrations, updated the database, ran the API, and both Swagger and the Angular UI loaded without issues. I could log in normally using the default admin user.

Today, after reopening the solution, the API behaves unexpectedly:

Swagger and the Angular logo no longer appear when running the API. It looks like the application is not initializing properly.

When I try to log in, I receive an error saying that the ClientId is missing, as if the default OpenIddict client was never seeded.

I tried dropping and recreating the database (using Update-Database):

Sometimes it works, sometimes it does not.

Most of the time, the default admin user is NOT created, which should happen during the DataSeeder execution.

I did not change anything related to authentication, database configuration, or appsettings between yesterday and today.

It seems like:

the DataSeeder is not being executed reliably,

or the project is not connecting to the database during startup,

or OpenIddict initialization is failing silently, causing the Client and admin user seeding to be skipped.

Could you help me understand why the initialization is inconsistent and why the default admin user and default clients are not being created when recreating the DB?

Thank you.

Showing 1 to 9 of 9 entries
Learn More, Pay Less
33% OFF
All Trainings!
Get Your Deal
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v10.1.0-preview. Updated on December 25, 2025, 06:16
1
ABP Assistant
🔐 You need to be logged in to use the chatbot. Please log in first.