1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00
Jeremy Stretch d8784d4155 Closes #11558: Add support for remote data sources (#11646)
* WIP

* WIP

* Add git sync

* Fix file hashing

* Add last_synced to DataSource

* Build out UI & API resources

* Add status field to DataSource

* Add UI control to sync data source

* Add API endpoint to sync data sources

* Fix display of DataSource job results

* DataSource password should be write-only

* General cleanup

* Add data file UI view

* Punt on HTTP, FTP support for now

* Add DataSource URL validation

* Add HTTP proxy support to git fetcher

* Add management command to sync data sources

* DataFile REST API endpoints should be read-only

* Refactor fetch methods into backend classes

* Replace auth & git branch fields with general-purpose parameters

* Fix last_synced time

* Render discrete form fields for backend parameters

* Enable dynamic edit form for DataSource

* Register DataBackend classes in application registry

* Add search indexers for DataSource, DataFile

* Add single & bulk delete views for DataFile

* Add model documentation

* Convert DataSource to a primary model

* Introduce pre_sync & post_sync signals

* Clean up migrations

* Rename url to source_url

* Clean up filtersets

* Add API & filterset tests

* Add view tests

* Add initSelect() to HTMX refresh handler

* Render DataSourceForm fieldsets dynamically

* Update compiled static resources
2023-02-19 20:09:51 -05:00

1.5 KiB

Data Sources

A data source represents some external repository of data which NetBox can consume, such as a git repository. Files within the data source are synchronized to NetBox by saving them in the database as data file objects.

Fields

Name

The data source's human-friendly name.

Type

The type of data source. Supported options include:

  • Local directory
  • git repository

URL

The URL identifying the remote source. Some examples are included below.

Type Example URL
Local file:///var/my/data/source/
git https://https://github.com/my-organization/my-repo

Status

The source's current synchronization status. Note that this cannot be set manually: It is updated automatically when the source is synchronized.

Enabled

If false, synchronization will be disabled.

Ignore Rules

A set of rules (one per line) identifying filenames to ignore during synchronization. Some examples are provided below. See Python's fnmatch() documentation for a complete reference.

Rule Description
README Ignore any files named README
*.txt Ignore any files with a .txt extension
data???.json Ignore e.g. data123.json

Last Synced

The date and time at which the source was most recently synchronized successfully.