Skip to content

Commit a4af334

Browse files
Merge pull request #295 from netboxlabs/release-v0.6.0
Release v0.6.0
2 parents 27759c7 + 607a82d commit a4af334

29 files changed

+677
-190
lines changed

.github/workflows/lint-tests.yaml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@ on:
33
workflow_dispatch:
44
pull_request:
55
push:
6-
branches:
7-
- "!release"
86

97
concurrency:
108
group: ${{ github.workflow }}

.github/workflows/release.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name: Release
22

33
on:
44
release:
5-
types: [released]
5+
types: [published]
66

77
permissions:
88
contents: read

LICENSE.md

Lines changed: 51 additions & 130 deletions
Original file line numberDiff line numberDiff line change
@@ -1,164 +1,85 @@
1-
# PolyForm Shield License 1.0.0
2-
3-
<https://polyformproject.org/licenses/shield/1.0.0>
1+
# NetBox Limited Use License 1.0
42

53
## Acceptance
64

7-
In order to get any license under these terms, you must agree
8-
to them as both strict obligations and conditions to all
9-
your licenses.
5+
In order to get any license under these terms, you must agree to them as
6+
both strict obligations and conditions to all your licenses.
107

118
## Copyright License
129

13-
The licensor grants you a copyright license for the
14-
software to do everything you might do with the software
15-
that would otherwise infringe the licensor's copyright
16-
in it for any permitted purpose. However, you may
17-
only distribute the software according to [Distribution
18-
License](#distribution-license) and make changes or new works
19-
based on the software according to [Changes and New Works
20-
License](#changes-and-new-works-license).
21-
22-
## Distribution License
23-
24-
The licensor grants you an additional copyright license
25-
to distribute copies of the software. Your license
26-
to distribute covers distributing the software with
27-
changes and new works permitted by [Changes and New Works
28-
License](#changes-and-new-works-license).
29-
30-
## Notices
31-
32-
You must ensure that anyone who gets a copy of any part of
33-
the software from you also gets a copy of these terms or the
34-
URL for them above, as well as copies of any plain-text lines
35-
beginning with `Required Notice:` that the licensor provided
36-
with the software. For example:
10+
NetBox Labs grants you a copyright license to use and modify the software
11+
only as part of a NetBox installation obtained from NetBox Labs or a NetBox
12+
distributor authorized by NetBox Labs, and only for your own internal use.
3713

38-
> Required Notice: Copyright Yoyodyne, Inc. (http://example.com)
39-
40-
## Changes and New Works License
41-
42-
The licensor grants you an additional copyright license to
43-
make changes and new works based on the software for any
44-
permitted purpose.
14+
For clarity, this license grants no rights to distribute the software or
15+
make it available to others as part of a commercial offering.
4516

4617
## Patent License
4718

48-
The licensor grants you a patent license for the software that
49-
covers patent claims the licensor can license, or becomes able
50-
to license, that you would infringe by using the software.
51-
52-
## Noncompete
53-
54-
Any purpose is a permitted purpose, except for providing any
55-
product that competes with the software or any product the
56-
licensor or any of its affiliates provides using the software.
57-
58-
## Competition
19+
NetBox Labs grants you a patent license for the software that covers patent
20+
claims the licensor can license, or becomes able to license, that you would
21+
infringe by using the software, as allowed in the copyright license above.
5922

60-
Goods and services compete even when they provide functionality
61-
through different kinds of interfaces or for different technical
62-
platforms. Applications can compete with services, libraries
63-
with plugins, frameworks with development tools, and so on,
64-
even if they're written in different programming languages
65-
or for different computer architectures. Goods and services
66-
compete even when provided free of charge. If you market a
67-
product as a practical substitute for the software or another
68-
product, it definitely competes.
69-
70-
## New Products
71-
72-
If you are using the software to provide a product that does
73-
not compete, but the licensor or any of its affiliates brings
74-
your product into competition by providing a new version of
75-
the software or another product using the software, you may
76-
continue using versions of the software available under these
77-
terms beforehand to provide your competing product, but not
78-
any later versions.
79-
80-
## Discontinued Products
81-
82-
You may begin using the software to compete with a product
83-
or service that the licensor or any of its affiliates has
84-
stopped providing, unless the licensor includes a plain-text
85-
line beginning with `Licensor Line of Business:` with the
86-
software that mentions that line of business. For example:
87-
88-
> Licensor Line of Business: YoyodyneCMS Content Management
89-
System (http://example.com/cms)
23+
## Patent Defense
9024

91-
## Sales of Business
25+
If you make any written claim that the software infringes or contributes to
26+
infringement of any patent, your patent license for the software granted
27+
under these terms ends immediately. If your company makes such a claim,
28+
your patent license ends immediately for work on behalf of your company.
29+
Competitive Restrictions
9230

93-
If the licensor or any of its affiliates sells a line of
94-
business developing the software or using the software
95-
to provide a product, the buyer can also enforce
96-
[Noncompete](#noncompete) for that product.
31+
This license does not grant you the right to use the software:
9732

98-
## Fair Use
33+
- To provide a managed service or software products that includes, integrates
34+
with, or extends NetBox in a way that competes with any product or service
35+
of NetBox Labs.
9936

100-
You may have "fair use" rights for the software under the
101-
law. These terms do not limit them.
37+
- To assist or enable a third party in offering a service or product that
38+
competes with any product or service of NetBox Labs.
10239

10340
## No Other Rights
10441

105-
These terms do not allow you to sublicense or transfer any of
106-
your licenses to anyone else, or prevent the licensor from
107-
granting licenses to anyone else. These terms do not imply
108-
any other licenses.
109-
110-
## Patent Defense
111-
112-
If you make any written claim that the software infringes or
113-
contributes to infringement of any patent, your patent license
114-
for the software granted under these terms ends immediately. If
115-
your company makes such a claim, your patent license ends
116-
immediately for work on behalf of your company.
42+
These terms do not allow you to sublicense or transfer any of your licenses
43+
to anyone else, or prevent NetBox Labs from granting licenses to anyone else.
44+
These terms do not imply any other licenses.
11745

11846
## Violations
11947

120-
The first time you are notified in writing that you have
121-
violated any of these terms, or done anything with the software
122-
not covered by your licenses, your licenses can nonetheless
123-
continue if you come into full compliance with these terms,
124-
and take practical steps to correct past violations, within
125-
32 days of receiving notice. Otherwise, all your licenses
126-
end immediately.
48+
The first time you are notified in writing that you have violated any of
49+
these terms, or done anything with the software not covered by your licenses,
50+
your licenses can nonetheless continue if you come into full compliance with
51+
these terms, and take practical steps to correct past violations, within 30
52+
days of receiving notice. Otherwise, all your licenses end immediately.
12753

12854
## No Liability
12955

130-
***As far as the law allows, the software comes as is, without
131-
any warranty or condition, and the licensor will not be liable
132-
to you for any damages arising out of these terms or the use
133-
or nature of the software, under any kind of legal claim.***
56+
As far as the law allows, the software comes as is, without any warranty or
57+
condition, and NetBox Labs will not be liable to you for any damages arising
58+
out of these terms or the use or nature of the software, under any kind of
59+
legal claim.
60+
61+
If this disclaimer is unenforceable under applicable law, this license is void.
13462

13563
## Definitions
13664

137-
The **licensor** is the individual or entity offering these
138-
terms, and the **software** is the software the licensor makes
139-
available under these terms.
65+
**NetBox Labs** is NetBox Labs, Inc.
14066

141-
A **product** can be a good or service, or a combination
142-
of them.
67+
**NetBox** is the community edition of NetBox found at
68+
<https://github.com/netbox-community/netbox> or any derivative thereof.
14369

144-
**You** refers to the individual or entity agreeing to these
145-
terms.
70+
The **software** is the software NetBox Labs makes available under these terms.
14671

147-
**Your company** is any legal entity, sole proprietorship,
148-
or other kind of organization that you work for, plus all
149-
its affiliates.
72+
**You** refers to the individual or entity agreeing to these terms.
15073

151-
**Affiliates** means the other organizations than an
152-
organization has control over, is under the control of, or is
153-
under common control with.
74+
**Your company** is any legal entity, sole proprietorship, or other kind of
75+
organization that you work for, plus all organizations that have control over,
76+
are under the control of, or are under common control with that organization.
15477

155-
**Control** means ownership of substantially all the assets of
156-
an entity, or the power to direct its management and policies
157-
by vote, contract, or otherwise. Control can be direct or
158-
indirect.
78+
**Control** means ownership of substantially all the assets of an entity,
79+
or the power to direct its management and policies by vote, contract, or
80+
otherwise. Control can be direct or indirect.
15981

160-
**Your licenses** are all the licenses granted to you for the
161-
software under these terms.
82+
**Your licenses** are all the licenses granted to you for the software under
83+
these terms.
16284

163-
**Use** means anything you do with the software requiring one
164-
of your licenses.
85+
**Use** means anything you do with the software requiring one of your licenses.

docs/changelog.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,20 @@
11
# Change Log
22

3+
## v0.6.0
4+
5+
### Enhancements
6+
7+
* [#1](https://github.com/netboxlabs/netbox-branching/issues/1) - Enable the application of database migrations to open branches
8+
* [#122](https://github.com/netboxlabs/netbox-branching/issues/122) - Implement a mechanism to enforce policy before executing branch actions
9+
* [#181](https://github.com/netboxlabs/netbox-branching/issues/181) - Introduce the `main_schema` configuration parameter to set the default schema name
10+
* [#189](https://github.com/netboxlabs/netbox-branching/issues/189) - Introduce a registration mechanism for pre-action branch validators
11+
12+
### Bug Fixes
13+
14+
* [#204](https://github.com/netboxlabs/netbox-branching/issues/204) - Hide navigation menu items for unauthenticated users
15+
16+
---
17+
318
## v0.5.7
419

520
### Bug Fixes

docs/configuration.md

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,14 @@ exempt_models = (
2828

2929
---
3030

31+
## `main_schema`
32+
33+
Default: `"public"`
34+
35+
The name of the main (primary) PostgreSQL schema. (Use the `\dn` command in the PostgreSQL CLI to list all schemas.)
36+
37+
---
38+
3139
## `max_working_branches`
3240

3341
Default: None
@@ -46,8 +54,40 @@ The maximum total number of branches that can exist simultaneously, including me
4654

4755
## `schema_prefix`
4856

49-
Default: `branch_`
57+
Default: `"branch_"`
5058

5159
The string to prefix to the unique branch ID when provisioning the PostgreSQL schema for a branch. Per [the PostgreSQL documentation](https://www.postgresql.org/docs/16/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS), this string must begin with a letter or underscore.
5260

5361
Note that a valid prefix is required, as the randomly-generated branch ID alone may begin with a digit, which would not qualify as a valid schema name.
62+
63+
---
64+
65+
## `sync_validators`
66+
67+
Default: `[]` (empty list)
68+
69+
A list of import paths to functions which validate whether a branch is permitted to be synced.
70+
71+
---
72+
73+
## `merge_validators`
74+
75+
Default: `[]` (empty list)
76+
77+
A list of import paths to functions which validate whether a branch is permitted to be merged.
78+
79+
---
80+
81+
## `revert_validators`
82+
83+
Default: `[]` (empty list)
84+
85+
A list of import paths to functions which validate whether a branch is permitted to be reverted.
86+
87+
---
88+
89+
## `archive_validators`
90+
91+
Default: `[]` (empty list)
92+
93+
A list of import paths to functions which validate whether a branch is permitted to be archived.

docs/models/branch.md

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,23 @@ The unique, randomly-generated identifier of the PostgreSQL schema which houses
2020

2121
The current status of the branch. This must be one of the following values.
2222

23-
| Status | Description |
24-
|--------------|-------------------------------------------------------------------|
25-
| New | Not yet provisioned in the database |
26-
| Provisioning | A job is running to provision the branch's PostgreSQL schema |
27-
| Ready | The branch is healthy and ready to be synchronized or merged |
28-
| Syncing | A job is running to synchronize changes from main into the branch |
29-
| Merging | A job is running to merge changes from the branch into main |
30-
| Reverting | A job is running to revert previously merged changes in main |
31-
| Merged | Changes from this branch have been successfully merged into main |
32-
| Archived | A merged branch which has been deprovisioned in the database |
33-
| Failed | Provisioning the schema for this branch has failed |
23+
| Status | Description |
24+
|--------------------|-------------------------------------------------------------------------------|
25+
| New | Not yet provisioned in the database |
26+
| Provisioning | A job is running to provision the branch's PostgreSQL schema |
27+
| Ready | The branch is healthy and ready to be synchronized or merged |
28+
| Syncing | A job is running to synchronize changes from main into the branch |
29+
| Migrating | A job is running to apply database migrations to the branch schema |
30+
| Merging | A job is running to merge changes from the branch into main |
31+
| Reverting | A job is running to revert previously merged changes in main |
32+
| Pending Migrations | One or more database migrations must be applied before the branch can be used |
33+
| Merged | Changes from this branch have been successfully merged into main |
34+
| Archived | A merged branch which has been deprovisioned in the database |
35+
| Failed | Provisioning the schema for this branch has failed |
36+
37+
### Applied Migrations
38+
39+
A list of database migrations which have been applied to the branch since it was created. This may be necessary to keep open branches up to date during NetBox upgrades.
3440

3541
### Last Sync
3642

0 commit comments

Comments
 (0)