Ability to group services and select multiple protocols to create an 'application' #9954

Closed
opened 2025-12-29 21:24:53 +01:00 by adam · 2 comments
Owner

Originally created by @ghost on GitHub (Jul 8, 2024).

NetBox version

v4.0.6

Feature type

Change to existing functionality

Proposed functionality

Currently, services and service templates follow a 1:1 relationship and only allow a single protocol per service. My proposal is to modify the current behavior to allow a one to many relationship, and allow multiple protocols for a single service.

Multi-protocol service
Services can sometimes operate over multiple protocols. For instance, DNS. Although typically a UDP service, DNS will actually use TCP in certain situations.
https://learn.microsoft.com/en-us/troubleshoot/windows-server/networking/dns-works-on-tcp-and-udp
We should be able to model this in Netbox using a single service (DNS), with the ability to select both TCP and UDP. Currently you would have to create 2 separate services for DNS, 1 using TCP the other using UDP. Which segways into the larger feature request.

Group service templates together
Currently, when you create a service and wish to reference a service template, you are only able to choose a single service template. The feature request is to add the ability to select multiple service templates rather than just one. This would give you the ability to select multiple ports/protocols from different service templates to form a more complete "service" that runs on a device/VM.

Use case

Let's pretend we want to model the service "Active Directory". AD is a catch-all phrase for a number of different technologies (LDAP, Kerberos, DNS, RPC, SMB, NetBIOS, etc.)
With the above features implemented, we would be able to create all of those separate technologies as service templates, then group them together into a service called "Active Directory" which we could then apply to a domain controller VM.

Or another example might be a custom home grown internal application that uses multiple different custom ports and/or protocols. We would then group those together to form an application called "Internal ERP" or whatever your app is called, and apply those to devices/vm's to better model what services a machine hosts/uses.

Database changes

I don't believe any database changes are needed. 95% of the functionality is already there, it just needs some slight modifications to allow multiple values rather than a single value for the "protocols" on service templates, and multiple choice for "service templates" on services.

External dependencies

none.

Originally created by @ghost on GitHub (Jul 8, 2024). ### NetBox version v4.0.6 ### Feature type Change to existing functionality ### Proposed functionality Currently, services and service templates follow a 1:1 relationship and only allow a single protocol per service. My proposal is to modify the current behavior to allow a one to many relationship, and allow multiple protocols for a single service. **Multi-protocol service** Services can sometimes operate over multiple protocols. For instance, DNS. Although typically a UDP service, DNS will actually use TCP in certain situations. https://learn.microsoft.com/en-us/troubleshoot/windows-server/networking/dns-works-on-tcp-and-udp We should be able to model this in Netbox using a single service (DNS), with the ability to select both TCP and UDP. Currently you would have to create 2 separate services for DNS, 1 using TCP the other using UDP. Which segways into the larger feature request. **Group service templates together** Currently, when you create a service and wish to reference a service template, you are only able to choose a single service template. The feature request is to add the ability to select multiple service templates rather than just one. This would give you the ability to select multiple ports/protocols from different service templates to form a more complete "service" that runs on a device/VM. ### Use case Let's pretend we want to model the service "Active Directory". AD is a catch-all phrase for a number of different technologies (LDAP, Kerberos, DNS, RPC, SMB, NetBIOS, etc.) With the above features implemented, we would be able to create all of those separate technologies as service templates, then group them together into a service called "Active Directory" which we could then apply to a domain controller VM. Or another example might be a custom home grown internal application that uses multiple different custom ports and/or protocols. We would then group those together to form an application called "Internal ERP" or whatever your app is called, and apply those to devices/vm's to better model what services a machine hosts/uses. ### Database changes I don't believe any database changes are needed. 95% of the functionality is already there, it just needs some slight modifications to allow multiple values rather than a single value for the "protocols" on service templates, and multiple choice for "service templates" on services. ### External dependencies none.
adam added the type: featurecomplexity: mediumstatus: backlog labels 2025-12-29 21:24:53 +01:00
adam closed this issue 2025-12-29 21:24:53 +01:00
Author
Owner

@ghost commented on GitHub (Jul 18, 2024):

There appears to already be a plugin idea for this exact FR : https://plugin-ideas.netbox.dev/ideas/PLUGINS-I-27
Oddly enough they used the same LDAP example.

I do not believe this would need to be a plugin though as you don't really need to create 'applications'. You can simply continue to refer to an application as a 'service' within the existing netbox data model. The only difference is that with this FR implemented, a service can be 1:1 or 1:N.

Your service can contain a single port with a single protocol, SSH (TCP/22) for example, or a grouping of multiple service templates using multiple ports/protocols.

@ghost commented on GitHub (Jul 18, 2024): There appears to already be a plugin idea for this exact FR : https://plugin-ideas.netbox.dev/ideas/PLUGINS-I-27 Oddly enough they used the same LDAP example. I do not believe this would need to be a plugin though as you don't really need to create 'applications'. You can simply continue to refer to an application as a 'service' within the existing netbox data model. The only difference is that with this FR implemented, a service can be 1:1 or 1:N. Your service can contain a single port with a single protocol, SSH (TCP/22) for example, or a grouping of multiple service templates using multiple ports/protocols.
Author
Owner

@ghost commented on GitHub (Aug 16, 2024):

Closing this in favor of revamped FR with broader scope for services. https://github.com/netbox-community/netbox/issues/17196

@ghost commented on GitHub (Aug 16, 2024): Closing this in favor of revamped FR with broader scope for services. https://github.com/netbox-community/netbox/issues/17196
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/netbox#9954