-
Notifications
You must be signed in to change notification settings - Fork 11
Release 0.4.7 #308
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Release 0.4.7 #308
Changes from all commits
Commits
Show all changes
243 commits
Select commit
Hold shift + click to select a range
1520c8d
feat(inventory): modules/inventory sync tab with mapping rules
marcinpsk c53b0c4
fix tests: update db-fallback tests to match new RQ-only cancellation…
marcinpsk b2fe27d
fix: updated tests
marcinpsk a60d601
Apply CR findings: code quality, test, docs, and template fixes
marcinpsk b04c67a
Apply second batch of CR findings on pr/inventory-core
marcinpsk ca7af1a
Apply CR findings batch 3: test hardening, PlatformMapping lazy impor…
marcinpsk cc7cb42
cr: batch 4 — prefetch_related, deterministic export, test improvements
marcinpsk 1a9df23
cr: batch 5 — normalization scoping bug, test fixes
marcinpsk 4a73896
cr: batch 6 — normalization rule caching, test correctness
marcinpsk a5f3b45
fix: FPC slot int/str comparison, stale docstring, test patch targets
marcinpsk 8776a0d
fix: surface ambiguous platform, preloaded-rules fallback, serial mis…
marcinpsk 5d6d856
fix: canonical librenms_id lookup, None guard, transceiver transparen…
marcinpsk ab85324
Apply CR batch 10 fixes
marcinpsk a6aece3
Apply CR batch 11 fixes
marcinpsk 75e1a51
fix: normalize librenms_hardware/os to lowercase, fix convert_speed_t…
marcinpsk 281c835
fix(js): address PR #258 review findings
marcinpsk 881c111
fix: handle unsaved manufacturer in normalization, fix JS modal/fetch…
marcinpsk aa443be
fix: type annotation, non-positive librenms_id guard, htmx label list…
marcinpsk 0773a2f
fix: use _PLACEHOLDER_VALUES for serial normalization, fix docstring
marcinpsk ae4c50a
Fix CR batch: device_type ambiguity, platform MOR, cache invalidation…
marcinpsk 1e29fc5
Promote SKIP_TYPES and _NON_HARDWARE_CLASSES to module-level constants
marcinpsk 7e70201
Fix find_matching_platform docstring and non-positive string librenms…
marcinpsk 32562e7
fix: normalize placeholder serials and txr_type in modules_view
marcinpsk 513932b
Fix whitespace-only librenms_id, BUILTIN model placeholder, FPC-scope…
marcinpsk 16ee302
Fix non-integer librenms_id passthrough, stale cache on missing ID, e…
marcinpsk 7dfd436
fix: normalize _GENERIC_CONTAINER_MODELS to lowercase; embed librenms…
marcinpsk 727198d
fix: treat duplicate-serial module conflicts as ambiguous instead of …
marcinpsk ab8dd7d
fix: clear stale cache on legacy payload; ungate generic-model filter…
marcinpsk 521932e
Remove dead vc_requested assignment left by rebase
marcinpsk 316caa1
fix: VC zero-based detection all-zeros guard; align VC-perm tests wit…
marcinpsk 44836e9
fix: CR batch 12 — serial normalization, conflict disambiguation, mod…
marcinpsk eceb492
fix: address deferred CR findings from issues #53-#56
marcinpsk e96b3f3
fix: address 3 remaining CR findings from PR #50
marcinpsk 7464ea5
refactor: drop _extract_inventory_list legacy-list fallback
marcinpsk ca5f8ef
fix: race conditions, class-aware mappings, stale snapshot in module …
marcinpsk 7a202bd
fix: normalize placeholder serials in UpdateModuleSerialView, fix reg…
marcinpsk 45e8078
fix: lock module row before updating serial in UpdateModuleSerialView
marcinpsk 87400d5
fix: use fullmatch+expand in _find_parent_module_id regex matching
marcinpsk b56da37
Merge branch 'develop' into pr/inventory-core
bonzo81 b4a331d
fix: address CR review batch - regex, tests, docs
marcinpsk d87863f
revert: restore original docs/usage_tips/virtual_chassis.md
marcinpsk 7ac2017
fix: revert bulk_import cancellation, VC comment, VM docstring, sync …
marcinpsk fbb8d80
fix: restore naming resolution and VC logic lost during rebase
marcinpsk 338ef60
revert: restore original README.md and virtual_chassis.md
marcinpsk 793797a
fix: improve ambiguity test assertion and error message wording
marcinpsk 87772d0
fix: CR review - modal close, test line refs, generic e2e
marcinpsk be40fd8
Merge branch 'develop' into pr/inventory-core
marcinpsk 4d418be
docs: update instruction files for accuracy after v0.4.4-v0.4.6 changes
bonzo81 fb79e87
Merge pull request #278 from bonzo81/docs/update-instructions-for-rel…
bonzo81 631777e
Merge branch 'develop' into pr/inventory-core
marcinpsk 53e76b2
fix: three bugs in module inventory sync reported in PR #261 review
marcinpsk a1c0be8
fix: improve module table readability in dark mode
marcinpsk c23a2da
feat: split Mappings into its own navigation group
marcinpsk c04e700
refactor: reorder navigation groups to Import, Status Check, Mappings…
marcinpsk 0946700
fix: remove table-light from mismatch modal thead for dark mode
marcinpsk c82fef8
fix: replace table-danger/warning cell backgrounds with text colors i…
marcinpsk 0105892
fix: remove all row background highlighting from module sync table
marcinpsk 04c9b8d
refactor: reorder Mappings group — all mappings first, then Ignore Ru…
marcinpsk 41a7c85
fix: update tests to reflect row_class removal
marcinpsk 3029cd3
fix: auto-generate slug when creating platform from sync page (#279)
marcinpsk cc40f2a
Revert "fix: auto-generate slug when creating platform from sync page…
marcinpsk 120dd00
fix: generate slug when creating Platform via CreateAndAssignPlatform…
marcinpsk ab284dc
test: assert Platform constructor receives slug in CreateAndAssignPla…
marcinpsk 4d21c55
fix: generate slug when creating Platform via CreateAndAssignPlatform…
marcinpsk ff76ea1
test: assert Platform constructor receives slug in CreateAndAssignPla…
marcinpsk 7524a16
fix: wrap OOB row in table to survive HTMX HTML parsing
marcinpsk 5edcaed
fix(imports): add HTTP status codes, remove redundant full_clean, fix…
marcinpsk 385d60c
fix(js): extract JSON error message in delete-interfaces handler; gua…
marcinpsk 3fc09bf
refactor(js): extract fetchErrorMessage() helper to unify fetch error…
marcinpsk d89852d
feat: exact-name-first platform lookup; optional mapping on platform …
marcinpsk 09ca860
fix(pr#50): address CR feedback on AddDeviceTypeMapping form and plat…
marcinpsk 08d78e1
fix(pr#50): isolate PlatformMapping save; ignore stale autocomplete r…
marcinpsk cb9f923
fix(pr#50): check add_platformmapping permission when create_mapping …
marcinpsk ce74bd1
Merge branch 'main' into pr/inventory-core
marcinpsk 7880f53
fix: address CodeQL security scan findings
marcinpsk 3c185f7
revert: remove workflow permissions additions (tracked separately)
marcinpsk 11d4b32
Fix PR review findings: available_roles, CSRF, test quality
marcinpsk cdccd3b
Fix PR #58 review findings (batch 2)
marcinpsk 334ad0d
Fix PR #58 review findings (batch 3)
marcinpsk 23d4ad6
Fix #59–#62: YAML anchor, DynamicModelChoiceField, ToggleColumn, writ…
marcinpsk 7162e99
Merge branch 'bonzo81:master' into main
marcinpsk 4fe7830
Merge branch 'main' into pr/inventory-core
marcinpsk 0a3f98f
Fix PR #63 review findings: ordering, error handling, modal title, cl…
marcinpsk 27412d9
Fix replacement template validation and deterministic bay lookup
marcinpsk c253af4
Fix wildcard constraint, ambiguity message, and scoped permissions
marcinpsk c878e89
devcontainer: restore full debug output in codespaces-configuration.py
marcinpsk c869d81
fix(migration): add preflight dedup before wildcard UniqueConstraint
marcinpsk 917f504
fix: remove dead check_match, close TOCTOU race, fix migration db alias
marcinpsk 6409609
fix: guard symmetric delete race in AddDeviceTypeMappingView
marcinpsk 3bfb51c
fix: catch IntegrityError on concurrent create in AddDeviceTypeMappin…
marcinpsk 52571a1
fix: inject hx-swap-oob on device row in AddDeviceTypeMappingView res…
marcinpsk 188b0bc
fix: use int:device_id converter on all device-import URL patterns
marcinpsk 664f5e9
fix: suppress false-positive CodeQL XSS on AddDeviceTypeMappingView r…
marcinpsk 6ba8308
fix: use format_html + mark_safe to clear CodeQL XSS on AddDeviceType…
marcinpsk b39e07e
fix: skip change-permission escalation in concurrent-create no-op path
marcinpsk 1cf871d
Merge pull request #282 from marcinpsk/fix/platform-slug
bonzo81 96a89e1
docs: clarify mark_safe is a trust assertion, not a sanitizer
marcinpsk 53cbf3a
feat: add VC-aware module sync
bonzo81 e731415
test: align VC module sync expectations
bonzo81 216fb84
fix: use all ancestor names as bay-mapping candidates
marcinpsk ac7e5c5
Revert "fix: use all ancestor names as bay-mapping candidates"
marcinpsk 03caca0
test: add prod-shape WS-X4908 bay-matching coverage
marcinpsk ef6d269
fix: bail _match_bay_by_position on non-container scaffolding
marcinpsk 2c839f3
fix: restrict serial_matches_device rule to chassis-level entries
marcinpsk d5e493e
fix: class-aware positional fallback + model gap warnings
marcinpsk be5f175
feat: ModuleBayMapping suggestions + Add Mapping button on No Bay rows
marcinpsk 0adcc81
fix: address valid code-review findings
marcinpsk 873e66d
feat: remove {module} conflict warning, add Generic manufacturer fall…
marcinpsk 1587c7b
fix: replace {module} conflict tooltip with Name Conflict status badg…
marcinpsk 74e37df
feat: show conflict reason as tooltip on Name Conflict badge
marcinpsk c96be2e
fix: re-apply Name Conflict status after _apply_installed_status
marcinpsk d98354c
feat: fix Name Conflict tooltip style and add 'Add Mapping' for No Ty…
marcinpsk 6cccf1e
fix: remove has_nested_name_conflict — obsolete since NetBox 4.5.5 si…
marcinpsk 51202ca
Revert "fix: remove has_nested_name_conflict — obsolete since NetBox …
marcinpsk 1166c40
feat: carrier auto-install rules + vendor-scoped ModuleBayMapping + m…
marcinpsk 91d81fe
fix: bay-mapping suggestions for integrated children and descr-encode…
marcinpsk 4c6030b
fix: address CodeRabbit review findings (small fixes)
marcinpsk 4f8dc88
contrib: vendor-scope generic mapping examples (#73)
marcinpsk 5219c2c
test/js: minor housekeeping nitpicks (#74)
marcinpsk 13fc72a
docs: clarify ModuleTypeMapping ambiguity asymmetry (#72)
marcinpsk e24bfea
refactor: convert module mismatch modal forms to HTMX (#70)
marcinpsk 6a3f577
fix(db): tighten uniqueness on nullable manufacturer FKs (#71)
marcinpsk 7f02cad
Suggest descr-anchored bay mapping for fan/PSU rows whose name is jus…
marcinpsk d2df39c
Scope ModuleTypeMapping by manufacturer + fix PlatformMapping ambiguo…
marcinpsk 1af01cd
Fail-closed Generic ModuleType fallback + CodeRabbit nitpicks
marcinpsk fe76d4b
Merge branch 'develop' into pr/inventory-core
marcinpsk 947ff74
PR #67 4th-pass review fixes (CodeRabbit + Copilot)
marcinpsk d0809b4
Add Bay Template QoL: inline modal for missing ModuleBayTemplate
marcinpsk 9ddd284
Address PR #67 5th-pass review comments
marcinpsk 4fd7111
Add ModuleBayMapping checkbox to Add-Bay-Template modal
marcinpsk 384bf55
Offer regex ModuleBayMapping when bay name skeleton matches
marcinpsk 4a6b0b7
Allow regex bay mapping when libre/NetBox skeletons differ
marcinpsk ea3473c
Render bay-mapping preview via DOM nodes, not innerHTML
marcinpsk c8d737d
Address PR #67 review pass 6: perms + safe-string fixes
marcinpsk 1795a8f
Instantiate ModuleBayTemplate onto existing devices/modules
marcinpsk 44a7961
Squash inventory-core migrations 0010-0015 into a single 0010
marcinpsk 4a28014
Fix permission gate ordering in SingleModuleVerifyView.post()
marcinpsk 150a6f4
fix(migrations): lower 0010 external deps to NetBox 4.2 floor
marcinpsk a193954
fix(import): guard VirtualMachine.cluster access (#284)
marcinpsk c5a5f13
Unify platform-create modal & fix conflict-action error UX
marcinpsk 2afd7d2
Don't gate librenms_id migration on unrelated validation errors
marcinpsk 32d52fa
Extend htmx error toast to remaining modal endpoints; update tests
marcinpsk 56e610b
fix(pr-review): address CodeRabbit feedback batch
marcinpsk 26771db
fix(pr-review): address 2 new CodeRabbit findings
marcinpsk 5769bf9
Fix UpdateDevicePlatformView to resolve platform via PlatformMapping
marcinpsk 846188a
Fix import modal platform row: show Not set + sync for existing devic…
marcinpsk 01a2f92
fix(pr-review): address 4 CodeRabbit findings
marcinpsk c0d17de
fix: format_html no-args TypeError in InventoryIgnoreRuleTable
marcinpsk b7968c9
fix(migration): match seeded InventoryIgnoreRules on full signature
marcinpsk 7eb7926
fix(sync): abort stale verify-module fetches before issuing a new one
marcinpsk 3d8469b
fix(contrib): anchor the two Nokia transceiver bay regex patterns
marcinpsk d5b5575
Fix four CodeRabbit review findings
marcinpsk c1f2598
Fix broken tests and PlatformMapping savepoint race condition
marcinpsk 0118f84
Introduce _parse_request_json helper; guard all json.loads in devices.py
marcinpsk 0269cb0
Move _parse_request_json to mixins; guard cables_view; fix weak tests
marcinpsk e77592f
Rename _parse_request_json -> parse_request_json (make public)
marcinpsk 6d92824
test: strengthen htmx error-path assertions and align names
marcinpsk c9ea0d9
fix: address five CodeRabbit findings from PR #288
marcinpsk 11e5805
fix(forms): drop legacy poller-group cache fallback + add response-sh…
marcinpsk 331a336
Merge pull request #261 from marcinpsk/pr/inventory-core
bonzo81 3de5c61
Merge pull request #287 from marcinpsk/fix/vm-cluster-none-284
bonzo81 d7d9961
fix(interfaces): prefer port_id identity and avoid unsafe reassignment
bonzo81 abfcd1c
feat(modules): align install flow with interface identity and bay mat…
bonzo81 c4a5085
test(modules): add regression coverage for install, matching, and ide…
bonzo81 16e8f14
fix(modules): refine bay matching and interface updates
bonzo81 7acf09f
fix(template): fix platform modal not rendering on Django 6
marcinpsk 2c3c3da
fix(template): guard create-platform modal to device objects only
marcinpsk 76e6362
fix(modules): tighten binding coverage
bonzo81 d931914
fix(modules): avoid regex backtracking in label parsing
bonzo81 715c6f0
fix(interfaces): ignore duplicate librenms ids in preview
bonzo81 8807ffb
fix(modules): warn on partial port metadata failures
bonzo81 ac3fb42
docs: document module sync, mapping rules and new features from pr/in…
marcinpsk 8dd5ea8
docs: replace screenshots with dark mode versions, update image refer…
marcinpsk 59132c7
docs: reorganize mapping screenshots into subdirectories
marcinpsk 4fafaf2
docs(mapping_rules): use American spelling consistently
marcinpsk 61527e5
docs(mapping_rules): satisfy MD031/MD040 on fenced code blocks
marcinpsk b2a8c10
docs(mapping_rules): correct Device Type matching description
marcinpsk 75734f9
docs: correct Platform matching order and ENTITY-MIB scope
marcinpsk f1128c8
fix(modules): pass interface permission to verify rows
bonzo81 b124d12
fix(modules): adopt interfaces during replace
bonzo81 649cc67
docs(module_sync): correct carrier button name to "Install Carrier"
marcinpsk 6cafe17
Extract stored-only LibreNMS ID helper
bonzo81 16cbcbf
Use stored interface IDs in module sync
bonzo81 2ad12ad
Adopt template interfaces for installed modules
bonzo81 a26d696
Clean up module interface binding follow-ups
bonzo81 572cd9d
Build module interface indexes in one pass
bonzo81 d217c8c
Tighten cached interface coverage assertions
bonzo81 c7f4764
Update README.md
marcinpsk 18df43c
Share VC-aware module template interface naming
bonzo81 f5d6c34
feat(modules): add predict_module_interface_names extension signal
marcinpsk b0bd16b
feat(modules): add "Report VC issue" diagnostic for unsupported vendo…
marcinpsk 882e6f0
fix(modules): review fixes for VC report diagnostic + e2e coverage
marcinpsk 00341c2
feat(utils): create single normalize_librenms_port_id function to uti…
bonzo81 0178c80
Apply formatting-only sync test cleanups
bonzo81 814ea64
Keep module tree prefixes on one line
bonzo81 bf0faf7
Merge branch 'feat/module-sync-followup' into feat/module-interface-n…
marcinpsk fc199f8
Align install bay matching with table-side normalization
bonzo81 3c4bb3f
Merge pull request #296 from bonzo81/feat/module-sync-followup
bonzo81 814a6e5
Merge branch 'develop' into fix/platform-modal-django6
marcinpsk 5d572e7
Merge branch 'develop' into docs/pr-inventory-core-docs
marcinpsk 1b3487f
Merge pull request #294 from marcinpsk/fix/platform-modal-django6
bonzo81 61dd15e
test: tighten last-receiver-wins assertion to == ["second"]
marcinpsk 708c88d
fix(modules): don't render 'No matching bay' on Integrated rows
66c72cb
Fix device location showing as dict on sync page (#280)
bonzo81 01a6129
Reference LibreNMS 26.5.0 and list location dict keys in comment
bonzo81 29b3e2d
Merge pull request #301 from bonzo81/fix/device-location-dict-280
bonzo81 919b7f8
Merge pull request #300 from marcinpsk/fix/module-bay-integrated-rows
bonzo81 0d746a7
feat: UI improvements extracted from oob-sync
marcinpsk 0d71995
fix(template): close platform-row if and make new-import mapping form…
marcinpsk 88635b4
fix(AddPlatformMappingView): close TOCTOU window with select_for_update
marcinpsk 2bc4457
fix(AddPlatformMappingView): use _htmx_error_response and reject "-" OS
marcinpsk b72ee93
fix(ui): expose platform-mapping form in existing-device branches
marcinpsk 7d7be71
fix(ui): guard against duplicate PlatformMapping rows with proper row…
marcinpsk 517cc95
ui(platform): compact platform cell with a single edit icon -> combin…
marcinpsk 55509aa
fix(ui): use {% comment %} in _platform_manage_icon (multi-line {# #}…
marcinpsk 6020daa
test(templates): guard against multi-line {# #} comments leaking as text
marcinpsk abf769b
fix(import): forward server_key from mapping forms; use logger.exception
marcinpsk 847e274
feat(ipam): add auto-create IPAM on device/VM import
marcinpsk eeb9099
fix(ip_helpers): wrap create() in nested savepoint to avoid poisoning…
marcinpsk ee95c05
fix: duplicate PlatformMapping guard and expose VM created_ips in bul…
marcinpsk 506c40d
fix(ipam): address PR #84 review — server_key in HTMX mapping forms, …
marcinpsk 4bced09
refactor(ipam): remove generic auto-create-IPAM-on-import feature
marcinpsk 81ac570
feat(ipam): set Primary IP from LibreNMS mgmt IP on the IP-sync tab
marcinpsk a48ff0d
ui(ipam): rename toggle label to 'Set Primary IP'
marcinpsk dd0c621
feat(ipam): auto-select the management-IP row when 'Set Primary IP' i…
marcinpsk 8983a22
fix(ipam): surface IP-sync errors and warn when Primary IP has no int…
marcinpsk 0c17b06
fix(ipam): check response.ok when persisting the Set-Primary-IP toggl…
marcinpsk c7acffa
fix(ip-sync): scope existing-IP lookup to the target VRF
marcinpsk 3328e77
Merge pull request #288 from marcinpsk/docs/pr-inventory-core-docs
bonzo81 6b59ac6
Merge pull request #303 from marcinpsk/feat/ipam
bonzo81 00ea133
ci: restrict GITHUB_TOKEN permissions in workflows
bonzo81 e7cfaa9
fix: localise open-redirect guard to redirect sink
bonzo81 6be6068
fix: avoid exposing exception details in IP address sync responses
bonzo81 09f31e8
Merge pull request #304 from bonzo81/security/workflow-token-permissions
bonzo81 4778786
fix: use positive-guard pattern for redirect validation
bonzo81 09c7bb1
Merge pull request #305 from bonzo81/security/fix-open-redirect
bonzo81 bfa903d
Merge pull request #306 from bonzo81/security/fix-stack-trace-exposure
bonzo81 69d5303
fix(module-hook): isolate signal receivers + log instantiate failures
marcinpsk c151c1c
test(module-hook): assert isolated receiver failure is logged
marcinpsk 09afc89
Merge pull request #298 from marcinpsk/feat/module-interface-name-pre…
bonzo81 b324e3a
docs: review and fill gaps for v0.4.7 release
bonzo81 e6def35
Merge pull request #307 from bonzo81/docs/v0.4.7-review
bonzo81 a0d6d5c
Bump version to 0.4.7 and update changelog
bonzo81 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,149 @@ | ||
| --- | ||
| applyTo: "**/changelog.md,**/pyproject.toml,**/__init__.py" | ||
| --- | ||
|
|
||
| # Release Workflow | ||
|
|
||
| This describes the standard release process for the NetBox LibreNMS Plugin. Follow these steps exactly when asked to create a new release. | ||
|
|
||
| ## Branch Strategy | ||
|
|
||
| > **Both `develop` and `master` have branch protection.** All changes must go through pull requests — never push directly. | ||
|
|
||
| ### Standard Flow (used for all releases) | ||
|
|
||
| 1. **Create `release/X.Y.Z` branch** from develop | ||
| 2. **Version bump commit** on the release branch | ||
| 3. **PR `release/X.Y.Z` → develop** (version bump PR) | ||
| 4. **PR `develop` → master** (release PR) — GitHub will auto-include any commits master is missing | ||
| 5. **Tag `vX.Y.Z`** on master and create GitHub release | ||
| 6. **Post-release:** master may now be ahead of develop (e.g. the merge commit). This resolves naturally — step 1 of the next release starts from the current develop, and the release PR (step 4) will reconcile any divergence. | ||
|
|
||
| ## Files to Update | ||
|
|
||
| Three files must be updated in a single commit with message `Bump version to X.Y.Z and update changelog`: | ||
|
|
||
| ### `netbox_librenms_plugin/__init__.py` | ||
| ```python | ||
| __version__ = "X.Y.Z" | ||
| ``` | ||
|
|
||
| ### `pyproject.toml` | ||
| ```toml | ||
| version = "X.Y.Z" | ||
| ``` | ||
|
|
||
| ### `docs/changelog.md` | ||
| Prepend a new section at the top (after `# Changelog`). Use the current date in `YYYY-MM-DD` format. Categories used (pick only those that apply): | ||
| - `### New Features` | ||
| - `### Improvements` | ||
| - `### Fixes` | ||
| - `### Development` | ||
| - `### Documentation` | ||
|
|
||
| Example: | ||
| ```markdown | ||
| ## X.Y.Z (YYYY-MM-DD) | ||
|
|
||
| ### Fixes | ||
| * Description of fix (#PR_NUMBER) | ||
| ``` | ||
|
|
||
| ## Version Bump PR (release/X.Y.Z → develop) | ||
|
|
||
| **Title:** `Bump version to X.Y.Z and update changelog` | ||
|
|
||
| **Body template:** | ||
| ```markdown | ||
| ## Summary | ||
| Bump version to X.Y.Z and update changelog for release. | ||
|
|
||
| ## Motivation / Problem | ||
| - Maintenance / cleanup | ||
|
|
||
| Prepare release X.Y.Z with <brief description of what's included>. | ||
|
|
||
| ## Scope of Change | ||
|
|
||
| - Config / settings | ||
| - Docs only | ||
|
|
||
| ## How Was This Tested? | ||
|
|
||
| - Not tested: version bump and changelog only | ||
|
|
||
| ## Risk Assessment | ||
| - No impact on existing users | ||
| - No code logic changes | ||
|
|
||
| ## Backwards Compatibility | ||
| - No breaking changes | ||
| ``` | ||
|
|
||
| ## Release PR (develop → master) | ||
|
|
||
| **Title:** `Release X.Y.Z` | ||
|
|
||
| **Body template:** | ||
| ```markdown | ||
| ## Summary | ||
| Release X.Y.Z — merge develop into master for PyPI release. | ||
|
|
||
| ## Motivation / Problem | ||
| - <Bug | Feature | Maintenance / cleanup> | ||
|
|
||
| <One-line description of what this release contains, referencing PR numbers.> | ||
|
|
||
| ## Scope of Change | ||
|
|
||
| <List applicable scopes from the PR template> | ||
|
|
||
| ## Changes | ||
| <Bullet list of changes, each referencing PR numbers> | ||
| - Bump version to X.Y.Z | ||
|
|
||
| ## How Was This Tested? | ||
|
|
||
| <Summarize testing from the included PRs> | ||
|
|
||
| ## Risk Assessment | ||
| <Brief risk assessment> | ||
|
|
||
| ## Backwards Compatibility | ||
| - No breaking changes | ||
| ``` | ||
|
|
||
| ## GitHub Release Text | ||
|
|
||
| **Tag:** `vX.Y.Z` (create on master) | ||
| **Release title:** `vX.Y.Z` | ||
|
|
||
| **Body template:** | ||
| ```markdown | ||
| ## <Bug Fix Release | Feature Release | Maintenance Release> | ||
|
|
||
| <One-paragraph summary of the release. Explain what was wrong and what changed.> | ||
|
|
||
| ### <Fixes | New Features | Improvements> | ||
|
|
||
| - <Change description> (#PR_NUMBER) | ||
|
|
||
| > ### Upgrade note | ||
| > - <Migration/collectstatic notes, or "No database migrations in this release."> Standard [update process](https://github.com/bonzo81/netbox-librenms-plugin#update) applies. | ||
|
|
||
| --- | ||
|
|
||
| ## All Changes | ||
| * <commit title> by @<author> in https://github.com/bonzo81/netbox-librenms-plugin/pull/<PR_NUMBER> | ||
| ``` | ||
|
|
||
| The "All Changes" section lists only the feature/fix PRs included in the release — not version bump or merge PRs. | ||
|
|
||
| ## Checklist | ||
|
|
||
| - [ ] Version bumped in `__init__.py` and `pyproject.toml` | ||
| - [ ] Changelog updated in `docs/changelog.md` | ||
| - [ ] Version bump PR merged to develop | ||
| - [ ] Release PR merged to master | ||
| - [ ] Tag created on master | ||
| - [ ] GitHub release published |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -10,6 +10,9 @@ on: | |
| - master | ||
| - develop | ||
|
|
||
| permissions: | ||
| contents: read | ||
|
|
||
| jobs: | ||
| format-and-lint: | ||
| runs-on: ubuntu-latest | ||
|
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -10,6 +10,9 @@ on: | |
| - master | ||
| - develop | ||
|
|
||
| permissions: | ||
| contents: read | ||
|
|
||
| jobs: | ||
| test-netbox: | ||
| runs-on: ubuntu-latest | ||
|
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,31 @@ | ||
| # Contrib: Example Mapping Files | ||
|
|
||
| This directory contains example YAML mapping files for bulk import into the | ||
| NetBox LibreNMS Plugin. Each file can be imported via the plugin's bulk import | ||
| feature in the NetBox UI. | ||
|
|
||
| ## How to Import | ||
|
|
||
| 1. Navigate to the mapping page (e.g., **LibreNMS → Device Type Mappings**) | ||
| 2. Click the **Import** button (upload icon) in the top right | ||
| 3. Select **YAML** format | ||
| 4. Paste the contents of the relevant YAML file | ||
| 5. Click **Submit** | ||
|
|
||
| ## Available Mappings | ||
|
|
||
| | File | Description | | ||
| |------|-------------| | ||
| | `interface_type_mappings.yaml` | Maps LibreNMS interface types + speeds to NetBox interface types | | ||
| | `device_type_mappings.yaml` | Maps LibreNMS hardware strings to NetBox device types | | ||
| | `module_type_mappings.yaml` | Maps LibreNMS inventory model names to NetBox module types (incl. transceivers) | | ||
| | `module_bay_mappings.yaml` | Maps LibreNMS inventory container names to NetBox module bay names | | ||
| | `normalization_rules.yaml` | Regex-based string normalization applied before module type/bay lookups | | ||
| | `inventory_ignore_rules.yaml` | Suppresses phantom ENTITY-MIB entries (e.g. Cisco IOS-XR IDPROM artefacts) | | ||
| | `platform_mappings.yaml` | Maps LibreNMS platform strings to NetBox device platforms | | ||
|
|
||
| ## Customisation | ||
|
|
||
| These files are **examples** — adjust values to match the device types, module | ||
| types, and interface types defined in your NetBox instance. The `netbox_*` | ||
| fields must reference objects that already exist in your NetBox. |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Avoid codifying a security-alert dismissal without compensating controls.
These comments normalise ignoring the alert, but the file still uses
ALLOWED_HOSTS = ["*"]. Even in dev containers, that broad host policy is a risky default and easy to propagate accidentally.Suggested hardening