Package: netbox-data-flows
netbox-data-flowsPlugin forNetBoxto document
Data Flows between systems and applications.WARNINGThis plugin is considered Work in Progress (Beta).
Please use caution if using this plugin for production!FeaturesDocument data flows between IP addresses, IP ranges and prefixesDocument the application that requires these data flowsWIP: Prepare the list of data flows to be injested as firewall rulesInstallation and ConfigurationFull reference:Using Plugins - NetBox DocumentationRequirementsNetBox (>=3.6.0)Python 3.8 or higherNote:the plugin uses some classes that are not explicitely exported in
NetBox's plugin API, such as MPTT Tree-based models. Upward compatiblity is
not guaranteed.Temporary installationInstall the Python package:source/opt/netbox/venv/bin/activate
pipinstallnetbox-data-flowsAdd the plugin in NetBox configuration# Add in: /opt/netbox/netbox/netbox/configuration.pyPLUGINS=['netbox_data_flows',]Create the database migrations:source/opt/netbox/venv/bin/activate
/opt/netbox/netbox/manage.pymigratenetbox_data_flowsThe plugin will be removed at the next NetBox update.Permanent installationAdd the Python package tolocal_requirements:echonetbox-data-flows>>/opt/netbox/local_requirements.txtAdd the plugin in NetBox configuration# Add in: /opt/netbox/netbox/netbox/configuration.pyPLUGINS=['netbox_data_flows',]Run theupgrade.shscript:/opt/netbox/upgrade.shConfigurationThere is noPLUGIN_CONFIGconfiguration for this plugin. However, several
other aspects can be configured.NomenclatureThe name of Data Flows, Data Flow Groups and Object Aliases is not
constrained. You may wish to enforce your own validation rules in your
configuration, e.g.:# Add in: /opt/netbox/netbox/netbox/configuration.pyCUSTOM_VALIDATORS={"netbox_data_flows.objectalias":[{"name":{"regex":"(host|net)_[a-z_]+"},}]}Similar settings can be applied to:Applications: netbox_data_flows.applicationApplication Roles: netbox_data_flows.applicationroleData Flows: netbox_data_flows.dataflowData Flow Groups: netbox_data_flows.dataflowgroupObject Aliases: netbox_data_flows.objectaliasFull reference:CUSTOM_VALIDATORS - NetBox DocumentationProtocol ChoicesYou can edit the list of available protocols when creating a data flow.# Add in: /opt/netbox/netbox/netbox/configuration.pyFIELD_CHOICES={'netbox_data_flows.DataFlow.protocol+':(('igmp',"IGMP"),)}Full reference:FIELD_CHOICES - NetBox DocumentationData modelApplication and Application RoleApplicationsare logical grouping of data flows and can be business
applications or infrastructure. Examples of applications:Active DirectoryMySuperBusinessAppNetwork management...Application Roleis a label to help you categorize your applications.
Each Application may have one Application Role.
Examples of roles:InfrastructureBusiness Division 1...Data FlowData Flowsmodelize a network connection between two objects. They may be
assigned to an ApplicationData Flows should have a source, a destination, a protocol, source ports and
destination ports. Only the protocol is mandatory.Data Flow Groupsform a forest of groups. A tree can be assigned to a
single Application. Data Flow Groups can be enabled and disabled and inherit
the status of their parent. Disabled Data Flow Groups disable all the Data
Flows contained within.Object AliasObject Aliasesare a group of references to other NetBox objects. Object
Aliases are used as sources and destinations of Data Flows and corresponds to
the groups or aliases used in firewall configuration. Internally, Object
Aliases contain Object Alias Targets, because Django cannot create ManyToMany
relationships to generic objects. Object Alias Targets are not exposed in the
interface and should be transparent for the user.Object Aliases currently supports:IP Addresses (ipam.ipaddress)IP Ranges (ipam.iprange)Prefixes (ipam.prefix)
If an IP Address is assigned to a device or virtual machine, that device is
also displayed.DevelopmentContributions are welcomed. This plugin is developped on the free time of its
author, so do not expect regular releases.Know bugs and limitationsREST API and GraphQL API are not testedSee also thelist of issuesPlanned EvolutionInclude data's type/nature and link to data flows or at rest on devices