Prerequisites for the Nodinite Web API
Prepare your environment for a seamless Nodinite Web API deployment. This guide details all technical prerequisites, security requirements, and best practices to ensure a successful installation and smooth operation.
✅ Complete checklist for Windows, SQL, and firewall requirements
✅ Visual architecture diagrams for clarity
✅ Direct links to troubleshooting and expert support
This page describes the prerequisites to install and run the Nodinite Web API successfully.
The Nodinite Web API is an IIS web site, with its own port, and part of the Core Services package. You configure it in the Nodinite Portal and install it with the generated CLI package; see Install Nodinite v7 and the general Prerequisites for Installing Nodinite.
The diagram above illustrates the architecture and key dependencies for the Nodinite Web API.
| Verified | Topic |
|---|---|
| IIS Windows Features | |
| MSDTC | |
| Windows rights | |
| Database rights | |
| Firewall |
Use the checklist above to verify that you have performed all steps required to get Nodinite flying.
IIS Windows Features
The Nodinite Web API is an IIS-hosted web site built on .NET 10 and ASP.NET Core. The server needs Windows Server 2019 or later and the .NET 10 Hosting Bundle; see Prerequisites for Installing Nodinite.
Key requirements
- Windows Authentication - Required when the environment uses Windows Authentication (the auth mode is set in the Portal, Auth step)
- ASP.NET Core Module V2 - Required for .NET 10; install the IIS features before the .NET 10 Hosting Bundle
IIS Windows Features - Complete feature list, installation scripts, and troubleshooting
Microsoft Distributed Transaction Coordinator (DTC)
The Web API is involved in SQL Server related operations. Nodinite uses the Windows Service Microsoft Distributed Transaction Coordinator (DTC),responsible for coordinating transactions that span multiple resource managers. We have written a dedicated tutorial for Nodinite with the best practices to install and configure the DTC Windows Service.
Important
You must configure the DTC as documented. Otherwise, Nodinite will not be operational.
What Windows rights does the Web API require?
The Nodinite Web API runs as an IIS web site with a dedicated App Pool. Its service identity is set in the Nodinite Portal: the defaults in the Auth step, Service Account Defaults (a gMSA is supported, see gMSA accounts), or a separate account per service in the Servers step, Core platform services. The generated CLI package creates the App Pool with that identity.
Service Account Requirements
- The App Pool service account must be able to login to the server:
Allow Logon locally - If the service account is not a local administrator, it must be a member of the IIS_IUSRS group
- The service account must have Read rights on
%windows%\system32\inetsrv\configfolder (for redirection.config access)
Note
To grant a user account the ability to log on locally to a domain controller, you must make that user a member of a group that already has the "Allow logon locally" system right, or grant the right to that user account directly.
How It Works
The generated CLI package creates a dedicated IIS App Pool for the Web API:
- The App Pool runs with the service identity set in the Portal
- Calls to SQL Server are performed as this identity, so this is the account that needs the SQL rights below
- Each caller is still authenticated individually (Windows Authentication or OAuth 2.0), and Nodinite Roles decide what the caller can see and do; Log Audits record the caller's identity
IIS Authentication settings - Complete guide to authentication configuration, encryption, and troubleshooting
IIS_IUSRS Group Membership - How to configure service accounts for least-privilege deployments
Important
If the Windows User account for the Application Pool is not assigned the sysadmin role, add the account to the LogServiceUsers System Parameter. When the Logging Service creates a new Log Database, it grants the database roles in LogAccessRoles to every account in that list.
For the complete rights matrix and non-sysadmin operating model, see SQL Server Sysadmin Requirements.
Tip
Troubleshooting permissions: If you encounter "Cannot read configuration file due to insufficient permissions" errors, ensure the App Pool account has Read rights on
%windows%\system32\inetsrv\config. See the IISConfigurationFile troubleshooting guide.
What SQL Rights does the Web API require?
Master
Grant VIEW SERVER STATE rights.
GRANT VIEW SERVER STATE TO [Domain\user]
Replace [Domain\user] with the Windows account being used for the Web API (its service identity).
If applicable, repeat the grant on all nodes part of an AOAG environment.
AOAG
Apply the settings below if you are using SQL Server Always on.
Grant GRANT VIEW DEFINITION ON AVAILABILITY GROUP rights.
GRANT VIEW DEFINITION ON AVAILABILITY GROUP ::AOAGGROUPNAME TO [Domain\user];
Replace [Domain\user] with the Windows account being used for the Web API (its service identity).
If applicable, repeat the grant on all nodes part of an AOAG environment.
Nodinite databases
The Nodinite Web API accesses the Configuration Database and the Log Databases with its service identity (set in the Portal) and requires the following SQL roles and grants:
| Database | Permission | Description | Microsoft Docs Link |
|---|---|---|---|
| Configuration Database | db_datareader | Grants read access to all tables and views | db_datareader |
| Configuration Database | db_datawriter | Grants write access to all tables and views | db_datawriter |
| Configuration Database | db_ddladmin | Allows running DDL statements (e.g., create/alter/drop objects) | db_ddladmin |
| Configuration Database | sysadmin/db_owner | Required for certain administrative tasks (e.g., shrinking databases) | sysadmin, db_owner |
| Log Databases | db_datareader | Grants read access to all tables and views | db_datareader |
| Log Databases | db_datawriter | Grants write access to all tables and views | db_datawriter |
| Log Databases | db_ddladmin | Allows running DDL statements (e.g., create/alter/drop objects) | db_ddladmin |
This table lists the minimum SQL Server permissions required for the Nodinite Web API's Configuration Database and Log Databases. Ensure these grants are set for uninterrupted operation, maintenance, and automation.
Grant Execute rights on all existing and future stored procedures for the account used by the Web API:
GRANT EXECUTE TO [Domain\user]
Replace [Domain\user] with the Windows account being used for the Web API.
Important
db_ddladmin is required for the service account to have proper rights to read statistics. Without this permission, performance may be degraded, especially true for remote servers (linked servers). Read more top 3 performance killers for linked server queries. Contact our support if you have any questions about this.
Tip
Review the System Parameters LogServiceUsers and LogAccessRoles so that the Web API account gets these roles on every new Log Database. The System Parameters that the Web API itself reads, such as SqlServer and ProductArtifactsPath, are listed in System Parameters in Manage the Web API.
What Firewall settings are required for the Web API
The Web API is the hub of the Nodinite Core Services: the Web Client, reporting tools, and scripts call it; it calls the Logging Service and the Monitoring Service; and it is the Core Service that reads and writes most data in SQL Server. In OAuth 2.0 mode, callers get tokens from Microsoft Entra ID and the Web API validates them. The diagram shows each host, with the port on the arrow, drawn from the side that opens the connection.
Diagram: reporting tools, scripts, and the Web Client call the Web API on its Portal port; the Web API calls the Logging Service, the Monitoring Service, SQL Server, and the domain controller. Dotted arrows apply only in OAuth 2.0 mode.
Note
Ports are set per environment: on Windows Server, each Core Service is its own IIS web site with its own port. You set the ports in the Nodinite Portal, in the Servers step, Core platform services, and review them in Allocated ports. Ports in examples, such as
40001inhttps://nodinite.contoso.com:40001, are examples only. The generated CLI package creates the IIS bindings, not the firewall rules.
Between the callers and the Web API
The users' browsers never call the Web API directly; they call the Web Client, which calls the Web API on the same server. See the Web Client prerequisites for the browser hop.
| Direction | Source | Destination | Protocol | Port(s) | Purpose | Notes |
|---|---|---|---|---|---|---|
| Inbound | Reporting tools and scripts | Core Services Server (Web API) | TCP (HTTPS) | Web API port | REST calls for reports, metrics, and automation | Set in the Portal; open only to the networks that run reports or scripts |
| Inbound | Core Services Server (Web Client) | Core Services Server (Web API) | TCP (HTTPS) | Web API port | Every Web Client page | Same server; no rule needed unless a host firewall restricts local traffic |
| Outbound | Reporting tools and scripts | Microsoft Entra ID (login.microsoftonline.com) |
TCP (HTTPS) | 443 | Get a bearer token for the Web API audience | OAuth 2.0 mode only; see Manage the Web API |
Between the Web API and the other Core Services
The Web API finds the Logging Service and the Monitoring Service through the ProductArtifactsPath System Parameter, which the installer sets. All Core Services run on the one server selected in the Portal (Servers step), so open these ports only if a host firewall restricts local traffic.
| Direction | Source | Destination | Protocol | Port(s) | Purpose | Notes |
|---|---|---|---|---|---|---|
| Outbound | Core Services Server (Web API) | Core Services Server (Logging Service) | TCP (HTTPS) | Logging Service port | Logging Service status and operations | Set in the Portal |
| Outbound | Core Services Server (Web API) | Core Services Server (Monitoring Service) | TCP (HTTPS) | Monitoring Service port | Monitoring Service status and operations | Set in the Portal |
| Inbound | Core Services Server (Logging Service, Monitoring Service) | Core Services Server (Web API) | TCP (HTTPS) | Web API port | The services call the Web API for their features | Set in the Portal |
Between the Web API and SQL Server
The SQL Server, MSDTC, and domain controller ports are shared by all Nodinite components; their full details live in SQL Server Firewall Configuration.
| Direction | Source | Destination | Protocol | Port(s) | Purpose | Notes |
|---|---|---|---|---|---|---|
| Outbound | Core Services Server (Web API) | SQL Server (Configuration Database) | TCP | 1433 | Read and write configuration and log data | Default instance port; the Log Databases are reached through the Configuration Database's Linked Servers. Named instances and changed ports: Core Services to SQL Server |
| Outbound | Core Services Server (Web API) | SQL Server | UDP | 1434 | SQL Server Browser | Only for a named instance without a port in the connection string; see SQL Server Browser Service |
| Both | Core Services Server (Web API) | SQL Server | TCP | 135 + dynamic RPC range | MSDTC distributed transactions | Configure MSDTC on both servers; see Core Services to SQL Server |
Between the Web API and the domain controller and Microsoft Entra ID
| Direction | Source | Destination | Protocol | Port(s) | Purpose | Notes |
|---|---|---|---|---|---|---|
| Outbound | Core Services Server (Web API) | Domain Controller (DNS server) | TCP/UDP | 53 | DNS name resolution | Hosts-file entries are a fallback |
| Outbound | Core Services Server (Web API) | Domain Controller | TCP/UDP | 88, 389 | Kerberos for Windows Authentication of callers and SQL Server; LDAP group lookups for Roles | See Domain Controller ports |
| Outbound | Core Services Server (Web API) | Microsoft Entra ID (login.microsoftonline.com) |
TCP (HTTPS) | 443 | Read the OpenID configuration and token signing keys | OAuth 2.0 mode only; through the proxy set in Step 3: Infrastructure if you use one |
What to get right
- No fixed default port: the Web API port is whatever you set in the Portal; scripts and reports must use the full base URL, including the port.
- Versions: Nodinite v7 replaced the fixed ports of earlier versions with Portal ports; see Why do Nodinite use port 8000 when you clean up old rules.
- DNS (53): callers must resolve the Web API host name that matches its TLS certificate, and Windows Authentication needs that name, not an IP address, for Kerberos.
Frequently asked questions
Additional solutions to common problems and the Nodinite Web API FAQ exist in the Troubleshooting user guide. For anything else, see the Support page.
Can I secure the Web API?
Yes. The Web API uses TLS (HTTPS). You enter the host name (FQDN) and the certificate subject in the Portal, in the Servers step, Core host Configuration, and the CLI package binds the certificate to the Web API site. In OAuth 2.0 mode, the Web API also requires a bearer token issued for the Web API audience set in the Auth step, Web API; see Manage the Web API.
Important
Review the Nodinite IIS Hardening user guide and TLS Troubleshooting for more information.
Note
Nodinite v6 is no longer supported. To move an existing v6 installation, follow Updating from v6 to v7.
Next Steps
Install Web API
IIS Windows Features
MSDTC
Manage the Web API
Related Topics
Core Services Package
Web API
Configuration Database
Hardening
IIS Authentication settings
Log Audits
Log Databases
Logging Service
Monitoring Service
Roles
System Parameters
SQL Server Firewall
Troubleshooting
Uninstall Web API
Update Web API