mirror of
https://github.com/balena-io/open-balena.git
synced 2025-06-25 02:29:16 +00:00
Compare commits
39 Commits
Author | SHA1 | Date | |
---|---|---|---|
dd59088cd2 | |||
cae93253a9 | |||
c4a18f5bf8 | |||
3b0c106eb1 | |||
c9fa4cf00f | |||
ea605d1444 | |||
966ea04241 | |||
dce59b65a3 | |||
f151d2a6cc | |||
4efb25afc7 | |||
08890adf92 | |||
44c11d9d16 | |||
e5bbfb833f | |||
a9107a1d6f | |||
f7207fb4a0 | |||
b39074c0ba | |||
3fed389090 | |||
96afd454bf | |||
0e0e5e1bc5 | |||
7c4e9fdc09 | |||
fbcb35a595 | |||
94f8b159c3 | |||
a328e8fc1d | |||
b1fd42669a | |||
39f7f6b0cc | |||
1180bb3462 | |||
fbf3007d4c | |||
2a3df9cd2a | |||
d71a90c1ef | |||
6739d1257b | |||
381fba943d | |||
66acae8bbf | |||
cd2c3f5e11 | |||
071b5850a9 | |||
91bc92dbb5 | |||
49831a6a60 | |||
549de52c73 | |||
826b61f08b | |||
0cdf0ef558 |
2
.github/CODEOWNERS
vendored
2
.github/CODEOWNERS
vendored
@ -1,2 +0,0 @@
|
|||||||
# Main repo owners:
|
|
||||||
* @dfunckt @xginn8 @pdcastro
|
|
4
.gitignore
vendored
4
.gitignore
vendored
@ -2,6 +2,10 @@
|
|||||||
.project
|
.project
|
||||||
.vagrant/
|
.vagrant/
|
||||||
|
|
||||||
|
meta.json
|
||||||
|
landr-dist
|
||||||
|
*.traineddata
|
||||||
|
|
||||||
/config
|
/config
|
||||||
/docker-compose.yml
|
/docker-compose.yml
|
||||||
/package-lock.json
|
/package-lock.json
|
||||||
|
File diff suppressed because it is too large
Load Diff
975
CHANGELOG.md
975
CHANGELOG.md
@ -4,6 +4,981 @@ All notable changes to this project will be documented in this file
|
|||||||
automatically by Versionist. DO NOT EDIT THIS FILE MANUALLY!
|
automatically by Versionist. DO NOT EDIT THIS FILE MANUALLY!
|
||||||
This project adheres to [Semantic Versioning](http://semver.org/).
|
This project adheres to [Semantic Versioning](http://semver.org/).
|
||||||
|
|
||||||
|
# v3.5.0
|
||||||
|
## (2022-04-27)
|
||||||
|
|
||||||
|
* Adding Landr test for openbalena [Andrew Nhem]
|
||||||
|
* Adding Landr test for openbalena [Andrew Nhem]
|
||||||
|
* Adding Landr test for openbalena [Andrew Nhem]
|
||||||
|
|
||||||
|
# v3.4.3
|
||||||
|
## (2022-02-22)
|
||||||
|
|
||||||
|
* chore(registry): removed data volume [Bart Versluijs]
|
||||||
|
|
||||||
|
# v3.4.2
|
||||||
|
## (2021-10-05)
|
||||||
|
|
||||||
|
* Get cert-provider working again [dave]
|
||||||
|
|
||||||
|
# v3.4.1
|
||||||
|
## (2021-06-30)
|
||||||
|
|
||||||
|
* Delete CODEOWNERS [dfunckt]
|
||||||
|
|
||||||
|
# v3.4.0
|
||||||
|
## (2021-06-25)
|
||||||
|
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary> Update API, registry and VPN services [Bart Versluijs] </summary>
|
||||||
|
|
||||||
|
> ## open-balena-api-0.139.0
|
||||||
|
> ### (2021-05-11)
|
||||||
|
>
|
||||||
|
> * Require public apps to be of a non-legacy type [Thodoris Greasidis]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.138.11
|
||||||
|
> ### (2021-05-11)
|
||||||
|
>
|
||||||
|
> * hostapps: unset a target hostapp when changing device types [Matthew McGinn]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.138.10
|
||||||
|
> ### (2021-05-07)
|
||||||
|
>
|
||||||
|
> * Use `true = false` rather than `1 = 2` for generating a false result [Pagan Gazzard]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.138.9
|
||||||
|
> ### (2021-05-06)
|
||||||
|
>
|
||||||
|
> * supervisor-apps: allow provisioning directly to a logstream edition [Matthew McGinn]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.138.8
|
||||||
|
> ### (2021-05-05)
|
||||||
|
>
|
||||||
|
> * hostapps: test that devices can still PATCH after provisioning to an invalidated release [Matthew McGinn]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.138.7
|
||||||
|
> ### (2021-05-04)
|
||||||
|
>
|
||||||
|
> * supervisor-releases: copy across all relevant modeling from closed API [Matthew McGinn]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.138.6
|
||||||
|
> ### (2021-05-04)
|
||||||
|
>
|
||||||
|
> * Remove unnecessary async/await from state endpoint [Pagan Gazzard]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.138.5
|
||||||
|
> ### (2021-05-04)
|
||||||
|
>
|
||||||
|
> * hostapps: ensure that preprovisioned devices aren't downgraded after check in [Matthew McGinn]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.138.4
|
||||||
|
> ### (2021-05-03)
|
||||||
|
>
|
||||||
|
> * hostapps: remove rule enforcing valid hostapp releases [Matthew McGinn]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.138.3
|
||||||
|
> ### (2021-05-03)
|
||||||
|
>
|
||||||
|
> * fixtures: reuse variable rather than hardcode the value [Matthew McGinn]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.138.2
|
||||||
|
> ### (2021-05-03)
|
||||||
|
>
|
||||||
|
> * fixtures: drop unnecessary state patch value [Matthew McGinn]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.138.1
|
||||||
|
> ### (2021-04-30)
|
||||||
|
>
|
||||||
|
> * Fix 'dependents' on state not being returned [toochevere]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.138.0
|
||||||
|
> ### (2021-04-30)
|
||||||
|
>
|
||||||
|
> * Revert "Expose the RPi family config vars to raspberrypi3-unipi-neuron" [Florin Sarbu]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.137.1
|
||||||
|
> ### (2021-04-30)
|
||||||
|
>
|
||||||
|
> * Add missing foreign key indexes [Pagan Gazzard]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.137.0
|
||||||
|
> ### (2021-04-30)
|
||||||
|
>
|
||||||
|
> * Expose the RPi family config vars to raspberrypi3-unipi-neuron [Florin Sarbu]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.136.4
|
||||||
|
> ### (2021-04-29)
|
||||||
|
>
|
||||||
|
> * Refactoring to get ready for v3 state endpoint changes [toochevere]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.136.3
|
||||||
|
> ### (2021-04-29)
|
||||||
|
>
|
||||||
|
> * Remove unnecessary delete hook for env var validation [Pagan Gazzard]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.136.2
|
||||||
|
> ### (2021-04-29)
|
||||||
|
>
|
||||||
|
> * Accept additional fields during provisioning if they are provided [Akis Kesoglou]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.136.1
|
||||||
|
> ### (2021-04-29)
|
||||||
|
>
|
||||||
|
>
|
||||||
|
> <details>
|
||||||
|
> <summary> Update dependencies [Pagan Gazzard] </summary>
|
||||||
|
>
|
||||||
|
>> ### pinejs-14.22.2
|
||||||
|
>> #### (2021-03-22)
|
||||||
|
>>
|
||||||
|
>> * Enable strict options by default and only disable specific ones [Pagan Gazzard]
|
||||||
|
>>
|
||||||
|
> </details>
|
||||||
|
>
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.136.0
|
||||||
|
> ### (2021-04-28)
|
||||||
|
>
|
||||||
|
> * hostapps: basic implementation of target hostapp release [Matthew McGinn]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.135.3
|
||||||
|
> ### (2021-04-26)
|
||||||
|
>
|
||||||
|
> * auth: remove unnecessary brackets [Matthew McGinn]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.135.2
|
||||||
|
> ### (2021-04-26)
|
||||||
|
>
|
||||||
|
> * model: regenerate types to pick up changes [Matthew McGinn]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.135.1
|
||||||
|
> ### (2021-04-26)
|
||||||
|
>
|
||||||
|
> * applications: allow apps to be marked as public [Matthew McGinn]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.135.0
|
||||||
|
> ### (2021-04-15)
|
||||||
|
>
|
||||||
|
> * Stop allowing cache clearing for multi-level cache [Pagan Gazzard]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.134.3
|
||||||
|
> ### (2021-04-13)
|
||||||
|
>
|
||||||
|
> * Add support for the `normalizer` option to the multi-level cache [Pagan Gazzard]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.134.2
|
||||||
|
> ### (2021-04-09)
|
||||||
|
>
|
||||||
|
>
|
||||||
|
> <details>
|
||||||
|
> <summary> Update open-balena-base to 11.1.2 [Pagan Gazzard] </summary>
|
||||||
|
>
|
||||||
|
>> ### open-balena-base-11.1.2
|
||||||
|
>> #### (2021-04-08)
|
||||||
|
>>
|
||||||
|
>> * Update nodejs to 14.16.1 and npm to 6.14.12 [Pagan Gazzard]
|
||||||
|
>>
|
||||||
|
>> ### open-balena-base-11.1.1
|
||||||
|
>> #### (2021-03-17)
|
||||||
|
>>
|
||||||
|
>> * Drop CircleCI [ab77]
|
||||||
|
>>
|
||||||
|
> </details>
|
||||||
|
>
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.134.1
|
||||||
|
> ### (2021-04-08)
|
||||||
|
>
|
||||||
|
> * Support caching of undefined in the multi-level cache [Pagan Gazzard]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.134.0
|
||||||
|
> ### (2021-04-06)
|
||||||
|
>
|
||||||
|
> * Support/use multi-level caching that can share cache between instances [Pagan Gazzard]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.133.7
|
||||||
|
> ### (2021-04-01)
|
||||||
|
>
|
||||||
|
> * Simplify ignored device types handling [Pagan Gazzard]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.133.6
|
||||||
|
> ### (2021-03-26)
|
||||||
|
>
|
||||||
|
> * Fix contracts sync job to run every 5 minutes instead of 5 seconds [Pagan Gazzard]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.133.5
|
||||||
|
> ### (2021-03-26)
|
||||||
|
>
|
||||||
|
> * Use primitive memoization mode for build-info-facade [Pagan Gazzard]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.133.4
|
||||||
|
> ### (2021-03-23)
|
||||||
|
>
|
||||||
|
> * Add scheduler mechanism and use it to synchronize contracts [Pagan Gazzard]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.133.3
|
||||||
|
> ### (2021-03-23)
|
||||||
|
>
|
||||||
|
> * Optimize getting the list of service installs to create per device [Pagan Gazzard]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.133.2
|
||||||
|
> ### (2021-03-22)
|
||||||
|
>
|
||||||
|
> * Enable strict options by default and only disable specific ones [Pagan Gazzard]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.133.1
|
||||||
|
> ### (2021-03-16)
|
||||||
|
>
|
||||||
|
> * Fix typing for partial rate limiter key fns [Pagan Gazzard]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.133.0
|
||||||
|
> ### (2021-03-16)
|
||||||
|
>
|
||||||
|
> * Prefetch api keys in the background rather than blocking [Pagan Gazzard]
|
||||||
|
> * Avoid the need to delete `req.apiKey` in prefetch middleware [Pagan Gazzard]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.132.5
|
||||||
|
> ### (2021-03-16)
|
||||||
|
>
|
||||||
|
> * Add support for async functions when generating rate limiter keys [Pagan Gazzard]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.132.4
|
||||||
|
> ### (2021-03-16)
|
||||||
|
>
|
||||||
|
>
|
||||||
|
> <details>
|
||||||
|
> <summary> Update pinejs to 14.22.1 [Pagan Gazzard] </summary>
|
||||||
|
>
|
||||||
|
>> ### pinejs-14.22.1
|
||||||
|
>> #### (2021-03-16)
|
||||||
|
>>
|
||||||
|
>> * Only use the api key if we successfully resolved one [Pagan Gazzard]
|
||||||
|
>>
|
||||||
|
>> ### pinejs-14.22.0
|
||||||
|
>> #### (2021-03-16)
|
||||||
|
>>
|
||||||
|
>> * Expose methods to resolve api keys without immediately using them [Pagan Gazzard]
|
||||||
|
>>
|
||||||
|
> </details>
|
||||||
|
>
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.132.3
|
||||||
|
> ### (2021-03-16)
|
||||||
|
>
|
||||||
|
> * Allow PATCHing the same username/email on a given user [Thodoris Greasidis]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.132.2
|
||||||
|
> ### (2021-03-16)
|
||||||
|
>
|
||||||
|
> * Fix username & email uniqueness check for batch PATCHes [Thodoris Greasidis]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.132.1
|
||||||
|
> ### (2021-03-15)
|
||||||
|
>
|
||||||
|
>
|
||||||
|
> <details>
|
||||||
|
> <summary> Update dependencies [Pagan Gazzard] </summary>
|
||||||
|
>
|
||||||
|
>> ### pinejs-14.21.1
|
||||||
|
>> #### (2021-03-15)
|
||||||
|
>>
|
||||||
|
>>
|
||||||
|
>> <details>
|
||||||
|
>> <summary> Update dependencies [Pagan Gazzard] </summary>
|
||||||
|
>>
|
||||||
|
>>> #### odata-parser-2.2.3
|
||||||
|
>>> ##### (2021-03-15)
|
||||||
|
>>>
|
||||||
|
>>> * Optimize `QuotedText` for the common case of few/no apostrophes [Pagan Gazzard]
|
||||||
|
>>>
|
||||||
|
>>> #### pinejs-client-js-6.9.4
|
||||||
|
>>> ##### (2021-03-10)
|
||||||
|
>>>
|
||||||
|
>>> * Update dependencies [Pagan Gazzard]
|
||||||
|
>>>
|
||||||
|
>> </details>
|
||||||
|
>>
|
||||||
|
>>
|
||||||
|
>> ### pinejs-14.21.0
|
||||||
|
>> #### (2021-03-12)
|
||||||
|
>>
|
||||||
|
>> * Support postgres exclusion constraints as 409s instead of 500s [Pagan Gazzard]
|
||||||
|
>>
|
||||||
|
>> ### pinejs-14.20.1
|
||||||
|
>> #### (2021-03-12)
|
||||||
|
>>
|
||||||
|
>> * Block eagerly fetching affected ids in cases it is not possible to do [Pagan Gazzard]
|
||||||
|
>>
|
||||||
|
> </details>
|
||||||
|
>
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.132.0
|
||||||
|
> ### (2021-03-15)
|
||||||
|
>
|
||||||
|
> * Added optional environment variable configuration for contact repository branch [Micah Halter]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.131.5
|
||||||
|
> ### (2021-03-15)
|
||||||
|
>
|
||||||
|
> * Add missing `await` [Pagan Gazzard]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.131.4
|
||||||
|
> ### (2021-03-15)
|
||||||
|
>
|
||||||
|
> * Simplify `toUuid` slightly [Pagan Gazzard]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.131.3
|
||||||
|
> ### (2021-03-15)
|
||||||
|
>
|
||||||
|
> * Fix device existence check to be true when the device does exist [Pagan Gazzard]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.131.2
|
||||||
|
> ### (2021-03-12)
|
||||||
|
>
|
||||||
|
> * Emit an error on the request stream for non-200s rather than throwing [Pagan Gazzard]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.131.1
|
||||||
|
> ### (2021-03-12)
|
||||||
|
>
|
||||||
|
> * Use primitive mode memoization for device existence cache [Pagan Gazzard]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.131.0
|
||||||
|
> ### (2021-03-12)
|
||||||
|
>
|
||||||
|
> * Switch application slug to using `${orgHandle}/${appName}` [Pagan Gazzard]
|
||||||
|
> * Fix automatic slug renaming on app rename [Pagan Gazzard]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.130.0
|
||||||
|
> ### (2021-03-12)
|
||||||
|
>
|
||||||
|
> * Expose the RPi family config vars to raspberrypicm4-ioboard [Thodoris Greasidis]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.129.9
|
||||||
|
> ### (2021-03-12)
|
||||||
|
>
|
||||||
|
> * Cache device existence check for 5 minutes [Pagan Gazzard]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.129.8
|
||||||
|
> ### (2021-03-10)
|
||||||
|
>
|
||||||
|
> * Only try to validate username/email if they are present [Pagan Gazzard]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.129.7
|
||||||
|
> ### (2021-03-10)
|
||||||
|
>
|
||||||
|
> * Add organization handle validation [Pagan Gazzard]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.129.6
|
||||||
|
> ### (2021-03-10)
|
||||||
|
>
|
||||||
|
> * Add username normalization [Pagan Gazzard]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.129.5
|
||||||
|
> ### (2021-03-10)
|
||||||
|
>
|
||||||
|
> * Validate username/email on PATCH as well as POST [Pagan Gazzard]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.129.4
|
||||||
|
> ### (2021-03-08)
|
||||||
|
>
|
||||||
|
>
|
||||||
|
> <details>
|
||||||
|
> <summary> Update pinejs to pick up rule optimizations for inserts [Pagan Gazzard] </summary>
|
||||||
|
>
|
||||||
|
>> ### pinejs-14.20.0
|
||||||
|
>> #### (2021-03-08)
|
||||||
|
>>
|
||||||
|
>>
|
||||||
|
>> <details>
|
||||||
|
>> <summary> Update abstract-sql-compiler bring more rules optimizations [Pagan Gazzard] </summary>
|
||||||
|
>>
|
||||||
|
>>> #### abstract-sql-compiler-7.12.0
|
||||||
|
>>> ##### (2021-03-05)
|
||||||
|
>>>
|
||||||
|
>>> * Enable narrowing down create/delete referenced fields for nested exists [Pagan Gazzard]
|
||||||
|
>>>
|
||||||
|
>> </details>
|
||||||
|
>>
|
||||||
|
>>
|
||||||
|
> </details>
|
||||||
|
>
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.129.3
|
||||||
|
> ### (2021-03-08)
|
||||||
|
>
|
||||||
|
> * Ensure service installs exist at the point of pinning an application [Pagan Gazzard]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.129.2
|
||||||
|
> ### (2021-03-05)
|
||||||
|
>
|
||||||
|
> * Fixed JSON serialization of device-type contracts going into the database. [Micah Halter]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.129.1
|
||||||
|
> ### (2021-03-05)
|
||||||
|
>
|
||||||
|
> * Fix release tracking of concurrent builds [Thodoris Greasidis]
|
||||||
|
> * Test new service install creation for pinned applications [Thodoris Greasidis]
|
||||||
|
> * Test release tracking of concurrent builds [Thodoris Greasidis]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.129.0
|
||||||
|
> ### (2021-03-05)
|
||||||
|
>
|
||||||
|
> * Added contract to device type and update database synchronization [Micah Halter]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.128.9
|
||||||
|
> ### (2021-03-05)
|
||||||
|
>
|
||||||
|
>
|
||||||
|
> <details>
|
||||||
|
> <summary> Update pinejs to pick up rule optimizations for deletes [Pagan Gazzard] </summary>
|
||||||
|
>
|
||||||
|
>> ### pinejs-14.19.0
|
||||||
|
>> #### (2021-03-01)
|
||||||
|
>>
|
||||||
|
>>
|
||||||
|
>> <details>
|
||||||
|
>> <summary> Update abstract-sql-compiler bring more rules optimizations [Pagan Gazzard] </summary>
|
||||||
|
>>
|
||||||
|
>>> #### lf-to-abstract-sql-4.2.1
|
||||||
|
>>> ##### (2021-02-17)
|
||||||
|
>>>
|
||||||
|
>>> * Correctly use the native name result in the generated abstract sql [Pagan Gazzard]
|
||||||
|
>>>
|
||||||
|
>> </details>
|
||||||
|
>>
|
||||||
|
>>
|
||||||
|
>> ### pinejs-14.18.4
|
||||||
|
>> #### (2021-03-01)
|
||||||
|
>>
|
||||||
|
>> * Remove some unnecessary bluebird usage [Pagan Gazzard]
|
||||||
|
>>
|
||||||
|
> </details>
|
||||||
|
>
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.128.8
|
||||||
|
> ### (2021-03-05)
|
||||||
|
>
|
||||||
|
> * State-patch: Optimize noop gateway download updates [Pagan Gazzard]
|
||||||
|
> * Separate marking old image installs deleted to a function [Pagan Gazzard]
|
||||||
|
> * State-patch: Use 1 GET for updating any number of gateway downloads [Pagan Gazzard]
|
||||||
|
> * State-patch: Use 1 GET for updating any number of image installs [Pagan Gazzard]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.128.7
|
||||||
|
> ### (2021-03-03)
|
||||||
|
>
|
||||||
|
> * Use already available primary key values in device state-patch [Pagan Gazzard]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.128.6
|
||||||
|
> ### (2021-03-01)
|
||||||
|
>
|
||||||
|
>
|
||||||
|
> <details>
|
||||||
|
> <summary> Update dependencies [Pagan Gazzard] </summary>
|
||||||
|
>
|
||||||
|
>> ### pinejs-14.18.3
|
||||||
|
>> #### (2021-02-26)
|
||||||
|
>>
|
||||||
|
>> * Warn when setting a `request.values` property that will not take effect [Pagan Gazzard]
|
||||||
|
>>
|
||||||
|
>> ### pinejs-14.18.2
|
||||||
|
>> #### (2021-02-15)
|
||||||
|
>>
|
||||||
|
>> * Gracefully handle `HttpError` thrown from PREPARSE hooks [Pagan Gazzard]
|
||||||
|
>>
|
||||||
|
> </details>
|
||||||
|
>
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.128.5
|
||||||
|
> ### (2021-03-01)
|
||||||
|
>
|
||||||
|
> * Add device type is default for application [JSReds]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.128.4
|
||||||
|
> ### (2021-02-26)
|
||||||
|
>
|
||||||
|
> * Allow pinejs to enforce the at most one app with a given name rule [Pagan Gazzard]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.128.3
|
||||||
|
> ### (2021-02-25)
|
||||||
|
>
|
||||||
|
> * fixtures: autogenerate commit if not provided [Matthew McGinn]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.128.2
|
||||||
|
> ### (2021-02-24)
|
||||||
|
>
|
||||||
|
>
|
||||||
|
> <details>
|
||||||
|
> <summary> Update open-balena-base to 11.1.0 [Pagan Gazzard] </summary>
|
||||||
|
>
|
||||||
|
>> ### open-balena-base-11.1.0
|
||||||
|
>> #### (2021-02-24)
|
||||||
|
>>
|
||||||
|
>> * Update nodejs to 14.16.0 [Pagan Gazzard]
|
||||||
|
>>
|
||||||
|
> </details>
|
||||||
|
>
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.128.1
|
||||||
|
> ### (2021-02-17)
|
||||||
|
>
|
||||||
|
>
|
||||||
|
> <details>
|
||||||
|
> <summary> Update open-balena-base to 11.0.5 [Pagan Gazzard] </summary>
|
||||||
|
>
|
||||||
|
>> ### open-balena-base-11.0.5
|
||||||
|
>> #### (2021-02-15)
|
||||||
|
>>
|
||||||
|
>> * Update nodejs to 14.15.5 and npm to 6.14.11 [Pagan Gazzard]
|
||||||
|
>>
|
||||||
|
> </details>
|
||||||
|
>
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.128.0
|
||||||
|
> ### (2021-02-17)
|
||||||
|
>
|
||||||
|
> * Stop exposing `/resin/` [Pagan Gazzard]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.127.0
|
||||||
|
> ### (2021-02-15)
|
||||||
|
>
|
||||||
|
> * Add a `boolVar` helper for config to standardize boolean config vars [Pagan Gazzard]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.126.5
|
||||||
|
> ### (2021-02-15)
|
||||||
|
>
|
||||||
|
> * Run tests against the exposed api version rather than internal [Pagan Gazzard]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.126.4
|
||||||
|
> ### (2021-02-12)
|
||||||
|
>
|
||||||
|
>
|
||||||
|
> <details>
|
||||||
|
> <summary> Update pinejs to 14.18.1 [Pagan Gazzard] </summary>
|
||||||
|
>
|
||||||
|
>> ### pinejs-14.18.1
|
||||||
|
>> #### (2021-02-12)
|
||||||
|
>>
|
||||||
|
>>
|
||||||
|
>> <details>
|
||||||
|
>> <summary> Update abstract-sql-compiler fix modified fields for upsert queries [Pagan Gazzard] </summary>
|
||||||
|
>>
|
||||||
|
>>> #### abstract-sql-compiler-7.10.2
|
||||||
|
>>> ##### (2021-02-12)
|
||||||
|
>>>
|
||||||
|
>>> * Fix `getModifiedFields` for `UpsertQuery`s [Pagan Gazzard]
|
||||||
|
>>>
|
||||||
|
>>> #### sbvr-types-3.4.1
|
||||||
|
>>> ##### (2021-02-10)
|
||||||
|
>>>
|
||||||
|
>>> * Remove unnecessary native fact type entries for synonymous forms [Pagan Gazzard]
|
||||||
|
>>>
|
||||||
|
>> </details>
|
||||||
|
>>
|
||||||
|
>>
|
||||||
|
>> ### pinejs-14.18.0
|
||||||
|
>> #### (2021-02-08)
|
||||||
|
>>
|
||||||
|
>>
|
||||||
|
>> <details>
|
||||||
|
>> <summary> Add support for sbvr date comparison and allow referencing current time [Pagan Gazzard] </summary>
|
||||||
|
>>
|
||||||
|
>>> #### lf-to-abstract-sql-4.2.0
|
||||||
|
>>> ##### (2021-02-05)
|
||||||
|
>>>
|
||||||
|
>>>
|
||||||
|
>>> <details>
|
||||||
|
>>> <summary> Add support for native `Name`s from sbvr-types [Pagan Gazzard] </summary>
|
||||||
|
>>>
|
||||||
|
>>>> ##### sbvr-parser-1.2.0
|
||||||
|
>>>> ###### (2021-02-05)
|
||||||
|
>>>>
|
||||||
|
>>>> * Add support for a `Name` role binding in the lf validator [Pagan Gazzard]
|
||||||
|
>>>>
|
||||||
|
>>> </details>
|
||||||
|
>>>
|
||||||
|
>>>
|
||||||
|
>>> #### sbvr-parser-1.2.2
|
||||||
|
>>> ##### (2021-02-08)
|
||||||
|
>>>
|
||||||
|
>>> * Optimize `StartX` rules [Pagan Gazzard]
|
||||||
|
>>> * Optimize `Identifier` when branch tracking is disabled (the default) [Pagan Gazzard]
|
||||||
|
>>> * Optimize `IdentifierPart` rule [Pagan Gazzard]
|
||||||
|
>>>
|
||||||
|
>>> #### sbvr-parser-1.2.1
|
||||||
|
>>> ##### (2021-02-08)
|
||||||
|
>>>
|
||||||
|
>>> * Update dependencies [Pagan Gazzard]
|
||||||
|
>>>
|
||||||
|
>>> #### sbvr-parser-1.2.0
|
||||||
|
>>> ##### (2021-02-05)
|
||||||
|
>>>
|
||||||
|
>>> * Add support for a `Name` role binding in the lf validator [Pagan Gazzard]
|
||||||
|
>>>
|
||||||
|
>>> #### sbvr-types-3.4.0
|
||||||
|
>>> ##### (2021-02-08)
|
||||||
|
>>>
|
||||||
|
>>> * Add a `Current Time` name that can be used to refer to the current time [Pagan Gazzard]
|
||||||
|
>>>
|
||||||
|
>>> #### sbvr-types-3.3.0
|
||||||
|
>>> ##### (2021-02-05)
|
||||||
|
>>>
|
||||||
|
>>> * Add `is before` & `is after` verbs to the Date & DateTime types [Thodoris Greasidis]
|
||||||
|
>>>
|
||||||
|
>> </details>
|
||||||
|
>>
|
||||||
|
>>
|
||||||
|
>> ### pinejs-14.17.1
|
||||||
|
>> #### (2021-02-08)
|
||||||
|
>>
|
||||||
|
>> * Fix .sbvr bundling in webpack [Pagan Gazzard]
|
||||||
|
>> * Fix extended-sbvr-parser export [Pagan Gazzard]
|
||||||
|
>>
|
||||||
|
>> ### pinejs-14.17.0
|
||||||
|
>> #### (2021-02-08)
|
||||||
|
>>
|
||||||
|
>> * Export extended-sbvr-parser from server-glue/server [Pagan Gazzard]
|
||||||
|
>>
|
||||||
|
>> ### pinejs-14.16.1
|
||||||
|
>> #### (2021-02-08)
|
||||||
|
>>
|
||||||
|
>> * Simplify server-glue/server exports [Pagan Gazzard]
|
||||||
|
>>
|
||||||
|
>> ### pinejs-14.16.0
|
||||||
|
>> #### (2021-02-01)
|
||||||
|
>>
|
||||||
|
>>
|
||||||
|
>> <details>
|
||||||
|
>> <summary> Update sbvr-types to 3.2.0, adding support for more `Text (Type)` verbs [Pagan Gazzard] </summary>
|
||||||
|
>>
|
||||||
|
>>> #### abstract-sql-compiler-7.10.1
|
||||||
|
>>> ##### (2021-01-29)
|
||||||
|
>>>
|
||||||
|
>>> * Separate code relating to referenced fields out of the main file [Pagan Gazzard]
|
||||||
|
>>>
|
||||||
|
>>> #### sbvr-types-3.2.0
|
||||||
|
>>> ##### (2021-01-29)
|
||||||
|
>>>
|
||||||
|
>>> * Add support for the `contains` verb to the text type [Thodoris Greasidis]
|
||||||
|
>>> * Add support for the`ends with` verb to the text type [Thodoris Greasidis]
|
||||||
|
>>> * Add support for the `starts with` verb to the text type [Thodoris Greasidis]
|
||||||
|
>>>
|
||||||
|
>> </details>
|
||||||
|
>>
|
||||||
|
>>
|
||||||
|
> </details>
|
||||||
|
>
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.126.3
|
||||||
|
> ### (2021-02-10)
|
||||||
|
>
|
||||||
|
> * Export `getDeviceTypesRoute` [Pagan Gazzard]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.126.2
|
||||||
|
> ### (2021-02-10)
|
||||||
|
>
|
||||||
|
> * Minor typing improvements [Pagan Gazzard]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.126.1
|
||||||
|
> ### (2021-02-09)
|
||||||
|
>
|
||||||
|
> * Fix missing field in migration for device family [Stevche Radevski]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.126.0
|
||||||
|
> ### (2021-02-08)
|
||||||
|
>
|
||||||
|
> * Add synonymous form to device family manufacturer [Stevche Radevski]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.125.0
|
||||||
|
> ### (2021-02-08)
|
||||||
|
>
|
||||||
|
> * Add device family and manufacturer resources [Stevche Radevski]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.124.0
|
||||||
|
> ### (2021-02-05)
|
||||||
|
>
|
||||||
|
> * releases: add new metadata to release model [Matthew McGinn]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.123.1
|
||||||
|
> ### (2021-02-03)
|
||||||
|
>
|
||||||
|
> * Add permission checking to the supervisor proxy [Thodoris Greasidis]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.123.0
|
||||||
|
> ### (2021-02-02)
|
||||||
|
>
|
||||||
|
> * Add a maximum file size for the BALENA_HOST_SPLASH_IMAGE config var [Thodoris Greasidis]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.122.0
|
||||||
|
> ### (2021-02-01)
|
||||||
|
>
|
||||||
|
>
|
||||||
|
> <details>
|
||||||
|
> <summary> Move tag key and device uuid length validation into SBVR rules [Pagan Gazzard] </summary>
|
||||||
|
>
|
||||||
|
>> ### pinejs-14.10.1
|
||||||
|
>> #### (2021-01-15)
|
||||||
|
>>
|
||||||
|
>>
|
||||||
|
>> <details>
|
||||||
|
>> <summary> Update dependencies [Pagan Gazzard] </summary>
|
||||||
|
>>
|
||||||
|
>>> #### abstract-sql-compiler-7.8.2
|
||||||
|
>>> ##### (2021-01-15)
|
||||||
|
>>>
|
||||||
|
>>> * Fix schema optimizations when table and resource names are different [Pagan Gazzard]
|
||||||
|
>>>
|
||||||
|
>>> #### abstract-sql-to-typescript-1.1.1
|
||||||
|
>>> ##### (2021-01-04)
|
||||||
|
>>>
|
||||||
|
>>> * Fix PickExpanded/PickDeferred type helpers [Pagan Gazzard]
|
||||||
|
>>>
|
||||||
|
>> </details>
|
||||||
|
>>
|
||||||
|
>>
|
||||||
|
> </details>
|
||||||
|
>
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.121.0
|
||||||
|
> ### (2021-02-01)
|
||||||
|
>
|
||||||
|
> * vars-schema: Add HOST_CONFIG HDMI config definitions for the RPi family [Thodoris Greasidis]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.120.3
|
||||||
|
> ### (2021-02-01)
|
||||||
|
>
|
||||||
|
> * Support setting pg statement/query timeouts, defaulting to 60s/61s [Pagan Gazzard]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.120.2
|
||||||
|
> ### (2021-01-29)
|
||||||
|
>
|
||||||
|
>
|
||||||
|
> <details>
|
||||||
|
> <summary> Update pinejs to 14.15.0, reducing the cases we need to run rules [Pagan Gazzard] </summary>
|
||||||
|
>
|
||||||
|
>> ### pinejs-14.15.0
|
||||||
|
>> #### (2021-01-29)
|
||||||
|
>>
|
||||||
|
>>
|
||||||
|
>> <details>
|
||||||
|
>> <summary> Make use of rule specific referenced fields to run rules in less cases [Pagan Gazzard] </summary>
|
||||||
|
>>
|
||||||
|
>>> #### abstract-sql-compiler-7.10.0
|
||||||
|
>>> ##### (2021-01-29)
|
||||||
|
>>>
|
||||||
|
>>> * Add an `action` property to modified fields of create/update/delete [Pagan Gazzard]
|
||||||
|
>>> * Automatically add `ruleReferencedFields` to `SqlRule`s [Pagan Gazzard]
|
||||||
|
>>> * Add a `getRuleReferencedFields` which is tailored for rules [Pagan Gazzard]
|
||||||
|
>>>
|
||||||
|
>>> #### abstract-sql-compiler-7.9.1
|
||||||
|
>>> ##### (2021-01-29)
|
||||||
|
>>>
|
||||||
|
>>> * Add test for optimizeSchema optimizing rules [Pagan Gazzard]
|
||||||
|
>>>
|
||||||
|
>>> #### abstract-sql-compiler-7.9.0
|
||||||
|
>>> ##### (2021-01-25)
|
||||||
|
>>>
|
||||||
|
>>> * Optimize the abstract sql of rules when running `optimizeSchema` [Pagan Gazzard]
|
||||||
|
>>>
|
||||||
|
>> </details>
|
||||||
|
>>
|
||||||
|
>>
|
||||||
|
> </details>
|
||||||
|
>
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.120.1
|
||||||
|
> ### (2021-01-29)
|
||||||
|
>
|
||||||
|
> * CODEOWNERS: Use the balena-api dev team [Thodoris Greasidis]
|
||||||
|
>
|
||||||
|
> ## open-balena-api-0.120.0
|
||||||
|
> ### (2021-01-29)
|
||||||
|
>
|
||||||
|
> * Optimize the unique commit per successful release per app rule [Thodoris Greasidis]
|
||||||
|
>
|
||||||
|
> ## open-balena-vpn-9.17.11
|
||||||
|
> ### (2021-05-14)
|
||||||
|
>
|
||||||
|
>
|
||||||
|
> <details>
|
||||||
|
> <summary> Update open-balena-base to 11.2.0 [Pagan Gazzard] </summary>
|
||||||
|
>
|
||||||
|
>> ### open-balena-base-11.2.0
|
||||||
|
>> #### (2021-05-14)
|
||||||
|
>>
|
||||||
|
>> * Update nodejs to 14.17.0 and npm to 6.14.13 [Pagan Gazzard]
|
||||||
|
>>
|
||||||
|
> </details>
|
||||||
|
>
|
||||||
|
>
|
||||||
|
> ## open-balena-vpn-9.17.10
|
||||||
|
> ### (2021-04-09)
|
||||||
|
>
|
||||||
|
>
|
||||||
|
> <details>
|
||||||
|
> <summary> Update open-balena-base to 11.1.2 [Pagan Gazzard] </summary>
|
||||||
|
>
|
||||||
|
>> ### open-balena-base-11.1.2
|
||||||
|
>> #### (2021-04-08)
|
||||||
|
>>
|
||||||
|
>> * Update nodejs to 14.16.1 and npm to 6.14.12 [Pagan Gazzard]
|
||||||
|
>>
|
||||||
|
>> ### open-balena-base-11.1.1
|
||||||
|
>> #### (2021-03-17)
|
||||||
|
>>
|
||||||
|
>> * Drop CircleCI [ab77]
|
||||||
|
>>
|
||||||
|
> </details>
|
||||||
|
>
|
||||||
|
>
|
||||||
|
> ## open-balena-vpn-9.17.9
|
||||||
|
> ### (2021-03-29)
|
||||||
|
>
|
||||||
|
> * Remove linting on prepush as it's already handled on commit [Pagan Gazzard]
|
||||||
|
>
|
||||||
|
> ## open-balena-vpn-9.17.8
|
||||||
|
> ### (2021-03-29)
|
||||||
|
>
|
||||||
|
> * Make more use of native promises and async/await [Pagan Gazzard]
|
||||||
|
>
|
||||||
|
> ## open-balena-vpn-9.17.7
|
||||||
|
> ### (2021-03-29)
|
||||||
|
>
|
||||||
|
>
|
||||||
|
> <details>
|
||||||
|
> <summary> Update dependencies [Pagan Gazzard] </summary>
|
||||||
|
>
|
||||||
|
>> ### pinejs-client-request-7.3.1
|
||||||
|
>> #### (2021-03-22)
|
||||||
|
>>
|
||||||
|
>>
|
||||||
|
>> <details>
|
||||||
|
>> <summary> Enable typescript strict mode [Pagan Gazzard] </summary>
|
||||||
|
>>
|
||||||
|
>>> #### pinejs-client-js-6.9.5
|
||||||
|
>>> ##### (2021-03-22)
|
||||||
|
>>>
|
||||||
|
>>> * Enable strict tsconfig options by default [Pagan Gazzard]
|
||||||
|
>>>
|
||||||
|
>>> #### pinejs-client-js-6.9.4
|
||||||
|
>>> ##### (2021-03-10)
|
||||||
|
>>>
|
||||||
|
>>> * Update dependencies [Pagan Gazzard]
|
||||||
|
>>>
|
||||||
|
>> </details>
|
||||||
|
>>
|
||||||
|
>>
|
||||||
|
>> ### pinejs-client-request-7.3.0
|
||||||
|
>> #### (2020-11-20)
|
||||||
|
>>
|
||||||
|
>>
|
||||||
|
>> <details>
|
||||||
|
>> <summary> Update dependencies [Pagan Gazzard] </summary>
|
||||||
|
>>
|
||||||
|
>>> #### pinejs-client-js-6.9.3
|
||||||
|
>>> ##### (2020-11-20)
|
||||||
|
>>>
|
||||||
|
>>> * Explicitly specify return types for all functions [Pagan Gazzard]
|
||||||
|
>>>
|
||||||
|
>>> #### pinejs-client-js-6.9.2
|
||||||
|
>>> ##### (2020-10-23)
|
||||||
|
>>>
|
||||||
|
>>> * Update dev dependencies [Pagan Gazzard]
|
||||||
|
>>>
|
||||||
|
>>> #### pinejs-client-js-6.9.1
|
||||||
|
>>> ##### (2020-09-17)
|
||||||
|
>>>
|
||||||
|
>>> * Improve typings [Pagan Gazzard]
|
||||||
|
>>>
|
||||||
|
>>> #### pinejs-client-js-6.9.0
|
||||||
|
>>> ##### (2020-09-07)
|
||||||
|
>>>
|
||||||
|
>>> * Add 'getOrCreate' method supporting natural keys [Thodoris Greasidis]
|
||||||
|
>>>
|
||||||
|
>>> #### pinejs-client-js-6.8.0
|
||||||
|
>>> ##### (2020-09-03)
|
||||||
|
>>>
|
||||||
|
>>> * Add support for $format [Pagan Gazzard]
|
||||||
|
>>>
|
||||||
|
>>> #### pinejs-client-js-6.7.3
|
||||||
|
>>> ##### (2020-08-26)
|
||||||
|
>>>
|
||||||
|
>>> * Improve $orderby typing to allow `[{a: 'desc'}, {b: 'asc'}]` [Pagan Gazzard]
|
||||||
|
>>>
|
||||||
|
>> </details>
|
||||||
|
>>
|
||||||
|
>>
|
||||||
|
> </details>
|
||||||
|
>
|
||||||
|
>
|
||||||
|
> ## open-balena-vpn-9.17.6
|
||||||
|
> ### (2021-02-24)
|
||||||
|
>
|
||||||
|
>
|
||||||
|
> <details>
|
||||||
|
> <summary> Update open-balena-base to 11.1.0 [Pagan Gazzard] </summary>
|
||||||
|
>
|
||||||
|
>> ### open-balena-base-11.1.0
|
||||||
|
>> #### (2021-02-24)
|
||||||
|
>>
|
||||||
|
>> * Update nodejs to 14.16.0 [Pagan Gazzard]
|
||||||
|
>>
|
||||||
|
> </details>
|
||||||
|
>
|
||||||
|
>
|
||||||
|
> ## open-balena-vpn-9.17.5
|
||||||
|
> ### (2021-02-17)
|
||||||
|
>
|
||||||
|
>
|
||||||
|
> <details>
|
||||||
|
> <summary> Update open-balena-base to 11.0.5 [Pagan Gazzard] </summary>
|
||||||
|
>
|
||||||
|
>> ### open-balena-base-11.0.5
|
||||||
|
>> #### (2021-02-15)
|
||||||
|
>>
|
||||||
|
>> * Update nodejs to 14.15.5 and npm to 6.14.11 [Pagan Gazzard]
|
||||||
|
>>
|
||||||
|
> </details>
|
||||||
|
>
|
||||||
|
>
|
||||||
|
> ## open-balena-registry-2.16.1
|
||||||
|
> ### (2021-05-14)
|
||||||
|
>
|
||||||
|
>
|
||||||
|
> <details>
|
||||||
|
> <summary> Update open-balena-base to 11.2.0 [Pagan Gazzard] </summary>
|
||||||
|
>
|
||||||
|
>> ### open-balena-base-11.2.0
|
||||||
|
>> #### (2021-05-14)
|
||||||
|
>>
|
||||||
|
>> * Update nodejs to 14.17.0 and npm to 6.14.13 [Pagan Gazzard]
|
||||||
|
>>
|
||||||
|
> </details>
|
||||||
|
>
|
||||||
|
>
|
||||||
|
</details>
|
||||||
|
|
||||||
|
# v3.3.2
|
||||||
|
## (2021-06-03)
|
||||||
|
|
||||||
|
* Auto-install required Vagrant plugins instead of erroring out [Mark S. Maglana]
|
||||||
|
|
||||||
|
# v3.3.1
|
||||||
|
## (2021-05-24)
|
||||||
|
|
||||||
|
* scripts/compose: Delete Balena CLI version warning This can be removed completely now — it was added to ensure existing users also update to the latest (at the time) CLI as they updated their open-balena installation. [fisehara]
|
||||||
|
|
||||||
|
# v3.3.0
|
||||||
|
## (2021-05-05)
|
||||||
|
|
||||||
|
* Update registry service [Bart Versluijs]
|
||||||
|
|
||||||
|
# v3.2.2
|
||||||
|
## (2021-04-28)
|
||||||
|
|
||||||
|
* patch: Adding supported devices to OB [rmorillo24]
|
||||||
|
|
||||||
# v3.2.1
|
# v3.2.1
|
||||||
## (2021-02-06)
|
## (2021-02-06)
|
||||||
|
|
||||||
|
30
CONTRIBUTING.md
Normal file
30
CONTRIBUTING.md
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
# Contributing to openbalena
|
||||||
|
|
||||||
|
Everyone is welcome to contribute to openBalena. There are many different ways
|
||||||
|
to get involved apart from submitting pull requests, including helping other
|
||||||
|
users on the [forums][forums], reporting or triaging [issues][issue-tracker],
|
||||||
|
reviewing and discussing [pull requests][pulls], or just spreading the word.
|
||||||
|
|
||||||
|
All of openbalena is hosted on GitHub. Apart from its constituent components,
|
||||||
|
which are the [API][open-balena-api], [VPN][open-balena-vpn], [Registry][open-balena-registry],
|
||||||
|
[S3 storage service][open-balena-s3], and [Database][open-balena-db], contributions
|
||||||
|
are also welcome to its client-side software such as the [balena CLI][balena-cli],
|
||||||
|
the [balena SDK][balena-sdk], [balenaOS][balena-os] and [balenaEngine][balena-engine].
|
||||||
|
|
||||||
|
[balena-cli]: https://github.com/balena-io/balena-cli
|
||||||
|
[balena-cloud-website]: https://balena.io/cloud
|
||||||
|
[balena-engine]: https://github.com/balena-os/balena-engine
|
||||||
|
[balena-os-website]: https://balena.io/os
|
||||||
|
[balena-os]: https://github.com/balena-os/meta-balena
|
||||||
|
[balena-sdk]: https://github.com/balena-io/balena-sdk
|
||||||
|
[documentation]: https://balena.io/docs/learn/welcome/introduction/
|
||||||
|
[forums]: https://forums.balena.io/c/open-balena
|
||||||
|
[getting-started]: https://balena.io/open/docs/getting-started
|
||||||
|
[issue-tracker]: https://github.com/balena-io/open-balena/issues
|
||||||
|
[open-balena-api]: https://github.com/balena-io/open-balena-api
|
||||||
|
[open-balena-db]: https://github.com/balena-io/open-balena-db
|
||||||
|
[open-balena-registry]: https://github.com/balena-io/open-balena-registry
|
||||||
|
[open-balena-s3]: https://github.com/balena-io/open-balena-s3
|
||||||
|
[open-balena-vpn]: https://github.com/balena-io/open-balena-vpn
|
||||||
|
[open-balena-website]: https://balena.io/open
|
||||||
|
[pulls]: https://github.com/balena-io/open-balena/pulls
|
99
README.md
99
README.md
@ -1,22 +1,8 @@
|
|||||||
<img alt="openBalena" src="docs/assets/openbalena-logo.svg" height="82">
|

|
||||||
|
|
||||||
---
|
**openbalena is an open source platform to manage IoT and edge device fleets at scale.**
|
||||||
|
|
||||||
OpenBalena is a platform to deploy and manage connected devices. Devices run
|
|
||||||
[balenaOS][balena-os-website], a host operating system designed for running
|
|
||||||
containers on IoT devices, and are managed via the [balena CLI][balena-cli],
|
|
||||||
which you can use to configure your application containers, push updates, check
|
|
||||||
status, view logs, and so forth. OpenBalena’s backend services, composed of
|
|
||||||
battle-tested components that we’ve run in production on [balenaCloud][balena-cloud-website]
|
|
||||||
for years, can store device information securely and reliably, allow remote
|
|
||||||
management via a built-in VPN service, and efficiently distribute container
|
|
||||||
images to your devices.
|
|
||||||
|
|
||||||
To learn more about openBalena, visit [balena.io/open][open-balena-website].
|
|
||||||
|
|
||||||
|
|
||||||
## Features
|
|
||||||
|
|
||||||
|
## Highlights
|
||||||
- **Simple provisioning**: Adding devices to your fleet is a breeze
|
- **Simple provisioning**: Adding devices to your fleet is a breeze
|
||||||
- **Easy updates**: Remotely update the software on your devices with a single command
|
- **Easy updates**: Remotely update the software on your devices with a single command
|
||||||
- **Container-based**: Benefit from the power of virtualization, optimized for the edge
|
- **Container-based**: Benefit from the power of virtualization, optimized for the edge
|
||||||
@ -24,15 +10,19 @@ To learn more about openBalena, visit [balena.io/open][open-balena-website].
|
|||||||
- **Powerful API & SDK**: Extend openBalena to fit your needs
|
- **Powerful API & SDK**: Extend openBalena to fit your needs
|
||||||
- **Built-in VPN**: Access your devices regardless of their network environment
|
- **Built-in VPN**: Access your devices regardless of their network environment
|
||||||
|
|
||||||
|
## Motivation
|
||||||
|
|
||||||
## Getting Started
|
openbalena is a platform that helps you deploy and manage connected devices. Devices run [balenaOS][balena-os-website], a host operating system designed for running containers on IoT devices, and are managed via the [balena CLI][balena-cli], which you can use to configure your application containers, push updates, check status, view logs, and more.
|
||||||
|
|
||||||
Our [Getting Started guide][getting-started] is the most direct path to getting
|
openbalena’s backend services, composed of battle-tested components that we’ve run in production on [balenaCloud][balena-cloud-website] for years, can store device information securely and reliably, allow remote management via a built-in VPN service, and efficiently distribute container images to your devices.
|
||||||
an openBalena installation up and running and successfully deploying your
|
|
||||||
application to your device(s).
|
|
||||||
|
|
||||||
|
To learn more about openbalena, visit [balena.io/open][open-balena-website].
|
||||||
|
|
||||||
## Compatibility
|
### Setup and Configuration
|
||||||
|
|
||||||
|
Our [Getting Started guide][getting-started] is the most direct path to getting an openbalena installation up and running and successfully deploying your application to your device(s).
|
||||||
|
|
||||||
|
### Compatibility
|
||||||
|
|
||||||
The current release of openBalena has the following minimum version requirements:
|
The current release of openBalena has the following minimum version requirements:
|
||||||
|
|
||||||
@ -43,8 +33,7 @@ If you are updating from previous openBalena versions, ensure you update the bal
|
|||||||
CLI and reprovision any devices to at least the minimum required versions in order
|
CLI and reprovision any devices to at least the minimum required versions in order
|
||||||
for them to be fully compatible with this release, as some features may not work.
|
for them to be fully compatible with this release, as some features may not work.
|
||||||
|
|
||||||
|
### Documentation
|
||||||
## Documentation
|
|
||||||
|
|
||||||
While we're still working on the project documentation, please refer to the
|
While we're still working on the project documentation, please refer to the
|
||||||
[balenaCloud documentation][documentation]. BalenaCloud is built on top of
|
[balenaCloud documentation][documentation]. BalenaCloud is built on top of
|
||||||
@ -62,67 +51,9 @@ sections are of particular interest:
|
|||||||
- [Reference](https://balena.io/docs/reference)
|
- [Reference](https://balena.io/docs/reference)
|
||||||
- [FAQ](https://balena.io/docs/faq/troubleshooting/faq)
|
- [FAQ](https://balena.io/docs/faq/troubleshooting/faq)
|
||||||
|
|
||||||
|
### License
|
||||||
|
|
||||||
## Getting Help
|
openbalena is licensed under the terms of AGPL v3. See [LICENSE](LICENSE) for details.
|
||||||
|
|
||||||
You are welcome to submit any questions, participate in discussions and request
|
|
||||||
help with any issue in [openBalena forums][forums]. The balena team frequents
|
|
||||||
these forums and will be happy to help. You can also ask other community members
|
|
||||||
for help, or contribute by answering questions posted by fellow openBalena users.
|
|
||||||
Please do not use the issue tracker for support-related questions.
|
|
||||||
|
|
||||||
|
|
||||||
## Contributing
|
|
||||||
|
|
||||||
Everyone is welcome to contribute to openBalena. There are many different ways
|
|
||||||
to get involved apart from submitting pull requests, including helping other
|
|
||||||
users on the [forums][forums], reporting or triaging [issues][issue-tracker],
|
|
||||||
reviewing and discussing [pull requests][pulls], or just spreading the word.
|
|
||||||
|
|
||||||
All of openBalena is hosted on GitHub. Apart from its constituent components,
|
|
||||||
which are the [API][open-balena-api], [VPN][open-balena-vpn], [Registry][open-balena-registry],
|
|
||||||
[S3 storage service][open-balena-s3], and [Database][open-balena-db], contributions
|
|
||||||
are also welcome to its client-side software such as the [balena CLI][balena-cli],
|
|
||||||
the [balena SDK][balena-sdk], [balenaOS][balena-os] and [balenaEngine][balena-engine].
|
|
||||||
|
|
||||||
|
|
||||||
## Roadmap
|
|
||||||
|
|
||||||
OpenBalena is currently in beta. While fully functional, it lacks features we
|
|
||||||
consider important before we can comfortably call it production-ready. During
|
|
||||||
this phase, don’t be alarmed if things don’t work as expected just yet (and
|
|
||||||
please let us know about any bugs or errors you encounter!). The following
|
|
||||||
improvements and new functionality is planned:
|
|
||||||
|
|
||||||
- Full documentation
|
|
||||||
- Full test suite
|
|
||||||
- Simplified deployment
|
|
||||||
- Remote host OS updates
|
|
||||||
- Support for custom device types
|
|
||||||
|
|
||||||
|
|
||||||
## Differences between openBalena and balenaCloud
|
|
||||||
|
|
||||||
| openBalena | balenaCloud |
|
|
||||||
| ----- | ---- |
|
|
||||||
| Device updates using full images | Device updates using [delta images](https://www.balena.io/docs/learn/deploy/delta/) |
|
|
||||||
| Support for a single user | Support for [multiple users](https://www.balena.io/docs/learn/manage/account/#application-members) |
|
|
||||||
| Self-hosted deployment and scaling | balena-managed scaling and deployment |
|
|
||||||
| Community support via [forums][forums] | Private support on [paid plans](https://www.balena.io/pricing/) |
|
|
||||||
| Deploy via `balena deploy` only | Build remotely with native builders using [`balena push`](https://www.balena.io/docs/learn/deploy/deployment/#balena-push) or [`git push`](https://www.balena.io/docs/learn/deploy/deployment/#git-push) |
|
|
||||||
| No support for building via `git push` | Use the same CI workflow with [`git push`](https://www.balena.io/docs/learn/deploy/deployment/#git-push) |
|
|
||||||
| No public URL support | Serve websites directly from device with [public device URLs](https://www.balena.io/docs/learn/manage/actions/#enable-public-device-url) |
|
|
||||||
| Management via `balena-cli` only | Cloud-based device management dashboard |
|
|
||||||
| Download images from [balena.io][balena-os-website] | Download preconfigured images directly from the dashboard |
|
|
||||||
| No supported remote diagnostics | Remote device diagnostics |
|
|
||||||
|
|
||||||
Additionally, refer back to the [roadmap](#roadmap) above for planned but not yet implemented features.
|
|
||||||
|
|
||||||
|
|
||||||
## License
|
|
||||||
|
|
||||||
OpenBalena is licensed under the terms of AGPL v3. See [LICENSE](LICENSE) for details.
|
|
||||||
|
|
||||||
|
|
||||||
[balena-cli]: https://github.com/balena-io/balena-cli
|
[balena-cli]: https://github.com/balena-io/balena-cli
|
||||||
[balena-cloud-website]: https://balena.io/cloud
|
[balena-cloud-website]: https://balena.io/cloud
|
||||||
|
13
Vagrantfile
vendored
13
Vagrantfile
vendored
@ -1,12 +1,11 @@
|
|||||||
Vagrant.require_version '>= 2.0.0'
|
Vagrant.require_version '>= 2.2.0'
|
||||||
|
|
||||||
[ 'vagrant-vbguest', 'vagrant-docker-compose' ].each do |p|
|
|
||||||
unless Vagrant.has_plugin?(p)
|
|
||||||
raise "Please install missing plugin: vagrant plugin install #{p}"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
Vagrant.configure('2') do |config|
|
Vagrant.configure('2') do |config|
|
||||||
|
config.vagrant.plugins = [
|
||||||
|
'vagrant-vbguest',
|
||||||
|
'vagrant-docker-compose'
|
||||||
|
]
|
||||||
|
|
||||||
config.vm.define 'openbalena'
|
config.vm.define 'openbalena'
|
||||||
config.vm.hostname = 'openbalena-vagrant'
|
config.vm.hostname = 'openbalena-vagrant'
|
||||||
config.vm.box = 'bento/ubuntu-18.04'
|
config.vm.box = 'bento/ubuntu-18.04'
|
||||||
|
@ -5,7 +5,6 @@ volumes:
|
|||||||
cert-provider: {}
|
cert-provider: {}
|
||||||
db: {}
|
db: {}
|
||||||
redis: {}
|
redis: {}
|
||||||
registry: {}
|
|
||||||
s3: {}
|
s3: {}
|
||||||
|
|
||||||
services:
|
services:
|
||||||
@ -65,8 +64,6 @@ services:
|
|||||||
depends_on:
|
depends_on:
|
||||||
- s3
|
- s3
|
||||||
- redis
|
- redis
|
||||||
volumes:
|
|
||||||
- registry:/data
|
|
||||||
environment:
|
environment:
|
||||||
API_TOKENAUTH_CRT: ${OPENBALENA_TOKEN_AUTH_PUB}
|
API_TOKENAUTH_CRT: ${OPENBALENA_TOKEN_AUTH_PUB}
|
||||||
BALENA_REGISTRY2_HOST: registry.${OPENBALENA_HOST_NAME}
|
BALENA_REGISTRY2_HOST: registry.${OPENBALENA_HOST_NAME}
|
||||||
@ -85,6 +82,7 @@ services:
|
|||||||
REGISTRY2_S3_SECRET: ${OPENBALENA_S3_SECRET_KEY}
|
REGISTRY2_S3_SECRET: ${OPENBALENA_S3_SECRET_KEY}
|
||||||
REGISTRY2_SECRETKEY: ${OPENBALENA_REGISTRY_SECRET_KEY}
|
REGISTRY2_SECRETKEY: ${OPENBALENA_REGISTRY_SECRET_KEY}
|
||||||
REGISTRY2_STORAGEPATH: /data
|
REGISTRY2_STORAGEPATH: /data
|
||||||
|
REGISTRY2_DISABLE_REDIRECT: "false"
|
||||||
|
|
||||||
vpn:
|
vpn:
|
||||||
extends:
|
extends:
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
export OPENBALENA_API_VERSION_TAG=v0.119.5
|
export OPENBALENA_API_VERSION_TAG=v0.139.0
|
||||||
export OPENBALENA_DB_VERSION_TAG=v4.1.0
|
export OPENBALENA_DB_VERSION_TAG=v4.1.0
|
||||||
export OPENBALENA_MDNS_PUBLISHER_VERSION_TAG=v1.9.2
|
export OPENBALENA_MDNS_PUBLISHER_VERSION_TAG=v1.9.2
|
||||||
export OPENBALENA_REGISTRY_VERSION_TAG=v2.14.4
|
export OPENBALENA_REGISTRY_VERSION_TAG=v2.16.1
|
||||||
export OPENBALENA_S3_VERSION_TAG=v2.9.9
|
export OPENBALENA_S3_VERSION_TAG=v2.9.9
|
||||||
export OPENBALENA_VPN_VERSION_TAG=v9.17.4
|
export OPENBALENA_VPN_VERSION_TAG=v9.17.11
|
||||||
|
226
docs/01-getting-started.md
Normal file
226
docs/01-getting-started.md
Normal file
@ -0,0 +1,226 @@
|
|||||||
|
# Getting started with openbalena
|
||||||
|
|
||||||
|
This guide will walk you through the steps of deploying an openBalena server,
|
||||||
|
that together with the balena CLI, will enable you to create and manage a fleet
|
||||||
|
of devices running on your own infrastructure, on premises or in the cloud. The
|
||||||
|
openBalena servers must be reachable by the devices, which is easiest to achieve
|
||||||
|
with cloud providers like AWS, Google Cloud, Digital Ocean and others.
|
||||||
|
|
||||||
|
This guide assumes a setup with two separate machines:
|
||||||
|
|
||||||
|
- The openBalena _server_, running Linux. These instructions were tested with an
|
||||||
|
Ubuntu 18.04 x64 server.
|
||||||
|
- The _local machine_, running Linux, Windows or macOS where the balena CLI runs
|
||||||
|
(as a client to the openBalena server). The local machine should also have a
|
||||||
|
working installation of [Docker](https://docs.docker.com/get-docker/) so that
|
||||||
|
application images can be built and deployed to your devices, although it is
|
||||||
|
also possible to use balenaEngine on a balenaOS device instead of Docker.
|
||||||
|
|
||||||
|
## Preparing a server for openBalena
|
||||||
|
|
||||||
|
Login to the server via SSH and run the following commands.
|
||||||
|
|
||||||
|
1. First, install or update essential software:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
apt-get update && apt-get install -y build-essential git docker.io libssl-dev nodejs npm
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Install docker-compose:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -L https://github.com/docker/compose/releases/download/1.27.4/docker-compose-Linux-x86_64 -o /usr/local/bin/docker-compose
|
||||||
|
chmod +x /usr/local/bin/docker-compose
|
||||||
|
```
|
||||||
|
|
||||||
|
Test your docker-compose installation with `$ docker-compose --version`.
|
||||||
|
|
||||||
|
3. Create a new user, assign admin permissions and add to `docker` group:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
adduser balena
|
||||||
|
usermod -aG sudo balena
|
||||||
|
usermod -aG docker balena
|
||||||
|
```
|
||||||
|
|
||||||
|
### Install openBalena on the server
|
||||||
|
|
||||||
|
1. On the server still, login as the new user and change into the home directory:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
su balena
|
||||||
|
cd ~
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Clone the openBalena repository and change into the new directory:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone https://github.com/balena-io/open-balena.git
|
||||||
|
cd open-balena/
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Run the `quickstart` script as below. This will create a new `config`
|
||||||
|
directory and generate appropriate SSL certificates and configuration for the
|
||||||
|
server. The provided email and password will be used to automatically create
|
||||||
|
the user account for interacting with the server and will be needed later on
|
||||||
|
for logging in via the balena CLI. Replace the domain name for the `-d`
|
||||||
|
argument appropriately.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./scripts/quickstart -U <email@address> -P <password> -d mydomain.com
|
||||||
|
```
|
||||||
|
|
||||||
|
For more available options, see the script's help:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./scripts/quickstart -h
|
||||||
|
```
|
||||||
|
|
||||||
|
4. At this point, the openBalena server can be started with:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
systemctl start docker
|
||||||
|
./scripts/compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
The `-d` argument spawns the containers as background services.
|
||||||
|
|
||||||
|
5. Tail the logs of the containers with:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./scripts/compose exec <service-name> journalctl -fn100
|
||||||
|
```
|
||||||
|
|
||||||
|
Replace `<service-name>` with the name of any one of the services defined
|
||||||
|
in `compose/services.yml`; eg. `api` or `registry`.
|
||||||
|
|
||||||
|
6. The server can be stopped with:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./scripts/compose stop
|
||||||
|
```
|
||||||
|
|
||||||
|
When updating openBalena to a new version, the steps are:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./scripts/compose down
|
||||||
|
git pull
|
||||||
|
./scripts/compose build
|
||||||
|
./scripts/compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
### Domain Configuration
|
||||||
|
|
||||||
|
The following CNAME records must be configured to point to the openBalena server:
|
||||||
|
|
||||||
|
```text
|
||||||
|
api.mydomain.com
|
||||||
|
registry.mydomain.com
|
||||||
|
vpn.mydomain.com
|
||||||
|
s3.mydomain.com
|
||||||
|
tunnel.mydomain.com
|
||||||
|
```
|
||||||
|
|
||||||
|
Check with your internet domain name registrar for instructions on how to
|
||||||
|
configure CNAME records.
|
||||||
|
|
||||||
|
### Test the openBalena server
|
||||||
|
|
||||||
|
To confirm that everything is running correctly, try a simple request from the
|
||||||
|
local machine to the server:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -k https://api.mydomain.com/ping
|
||||||
|
OK
|
||||||
|
```
|
||||||
|
|
||||||
|
Congratulations! The openBalena server is up and running. The next step is to
|
||||||
|
setup the local machine to use the server, provision a device and deploy a
|
||||||
|
small project.
|
||||||
|
|
||||||
|
## Install self-signed certificates on the local machine
|
||||||
|
|
||||||
|
The installation of the openBalena server produces a few self-signed certificates
|
||||||
|
that must be installed on the local machine, so that it can securely communicate
|
||||||
|
with the server.
|
||||||
|
|
||||||
|
The root certificate is found at `config/certs/root/ca.crt` on the server. Copy
|
||||||
|
it to some folder on the local machine and keep a note the path -- it will be
|
||||||
|
used later during the CLI installation. Follow the steps below for the specific
|
||||||
|
platform of the local machine.
|
||||||
|
|
||||||
|
### Linux:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo cp ca.crt /usr/local/share/ca-certificates/ca.crt
|
||||||
|
sudo update-ca-certificates
|
||||||
|
sudo systemctl restart docker
|
||||||
|
```
|
||||||
|
|
||||||
|
### macOS:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ca.crt
|
||||||
|
osascript -e 'quit app "Docker"' && open -a Docker
|
||||||
|
```
|
||||||
|
|
||||||
|
### Windows:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
certutil -addstore -f "ROOT" ca.crt
|
||||||
|
```
|
||||||
|
|
||||||
|
The Docker daemon on the local machine must then be restarted for Docker to
|
||||||
|
pick up the new certificate.
|
||||||
|
|
||||||
|
## Install the balena CLI on the local machine
|
||||||
|
|
||||||
|
Follow the [balena CLI installation
|
||||||
|
instructions](https://github.com/balena-io/balena-cli/blob/master/INSTALL.md)
|
||||||
|
to install the balena CLI on the local machine.
|
||||||
|
|
||||||
|
By default, the CLI targets the balenaCloud servers at `balena-cloud.com`, and
|
||||||
|
needs to be configured to target the openBalena server instead. Add the following
|
||||||
|
line to the CLI's configuration file, replacing `"mydomain.com"` with the domain
|
||||||
|
name of the openBalena server:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
balenaUrl: 'mydomain.com'
|
||||||
|
```
|
||||||
|
|
||||||
|
The CLI configuration file can be found at:
|
||||||
|
|
||||||
|
- On Linux or macOS: `~/.balenarc.yml`
|
||||||
|
- On Windows: `%UserProfile%\_balenarc.yml`
|
||||||
|
|
||||||
|
If the file does not already exist, just create it.
|
||||||
|
|
||||||
|
Wrapping up the CLI installation, set an environment variable that points to the
|
||||||
|
root certificate copied previously on the local machine. This step is to ensure
|
||||||
|
the CLI can securely interact with the openBalena server.
|
||||||
|
|
||||||
|
| Shell | Command |
|
||||||
|
| ------------------ | ---------------------------------------------- |
|
||||||
|
| bash | `export NODE_EXTRA_CA_CERTS='/path/to/ca.crt'` |
|
||||||
|
| Windows cmd.exe | `set NODE_EXTRA_CA_CERTS=C:\path\to\ca.crt` |
|
||||||
|
| Windows PowerShell | `$Env:NODE_EXTRA_CA_CERTS="C:\path\to\ca.crt"` |
|
||||||
|
|
||||||
|
## Deploy an application
|
||||||
|
|
||||||
|
The commands below should be run on a terminal on the local machine (where the
|
||||||
|
balena CLI is installed). Ensure that the `NODE_EXTRA_CA_CERTS` environment
|
||||||
|
variable is set, as discussed above.
|
||||||
|
|
||||||
|
### Login to openBalena
|
||||||
|
|
||||||
|
Run `balena login`, select `Credentials` and use the email and password
|
||||||
|
specified during quickstart to login to the openBalena server. At any time, the
|
||||||
|
`balena whoami` command may be used to check which server the CLI is logged in to.
|
||||||
|
|
||||||
|
## Getting Help
|
||||||
|
|
||||||
|
You are welcome to submit any questions, participate in discussions and request
|
||||||
|
help with any issue in [openBalena forums][forums]. The balena team frequents
|
||||||
|
these forums and will be happy to help. You can also ask other community members
|
||||||
|
for help, or contribute by answering questions posted by fellow openBalena users.
|
||||||
|
Please do not use the issue tracker for support-related questions.
|
143
docs/02-deploy-an-application-or-fleet.md
Normal file
143
docs/02-deploy-an-application-or-fleet.md
Normal file
@ -0,0 +1,143 @@
|
|||||||
|
# Deploy and provision an application
|
||||||
|
|
||||||
|
The commands below should be run on a terminal on the local machine (where the
|
||||||
|
balena CLI is installed). Ensure that the `NODE_EXTRA_CA_CERTS` environment
|
||||||
|
variable is set, as discussed above.
|
||||||
|
|
||||||
|
### Login to openBalena
|
||||||
|
|
||||||
|
Run `balena login`, select `Credentials` and use the email and password
|
||||||
|
specified during quickstart to login to the openBalena server. At any time, the
|
||||||
|
`balena whoami` command may be used to check which server the CLI is logged in to.
|
||||||
|
|
||||||
|
### Create an application
|
||||||
|
|
||||||
|
Create a new application with `balena app create myApp`. Select the application's
|
||||||
|
default device type with the interactive prompt. The examples in this guide assume
|
||||||
|
a Raspberry Pi 3.
|
||||||
|
|
||||||
|
An application contains devices that share the same architecture (such as ARM
|
||||||
|
or Intel i386), and also contains code releases that are deployed to the devices.
|
||||||
|
When a device is provisioned, it is added to an application, but can be migrated
|
||||||
|
to another application at any time. There is no limit to the number of applications
|
||||||
|
that can be created or to the number of devices that can be provisioned.
|
||||||
|
|
||||||
|
At any time, the server can be queried for all the applications it knows about
|
||||||
|
with the following command:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
balena apps
|
||||||
|
ID APP NAME DEVICE TYPE ONLINE DEVICES DEVICE COUNT
|
||||||
|
1 myApp raspberrypi3
|
||||||
|
```
|
||||||
|
|
||||||
|
### Provision a new device
|
||||||
|
|
||||||
|
Once we have an application, it’s time to start provisioning devices. To do this,
|
||||||
|
first download a balenaOS image from [balena.io](https://balena.io/os/#download).
|
||||||
|
Pick the development image that is appropriate for your device.
|
||||||
|
|
||||||
|
Unzip the downloaded image and use the balena CLI to configure it:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
balena os configure ~/Downloads/balena-cloud-raspberrypi3-2.58.3+rev1-dev-v11.14.0.img --app myApp
|
||||||
|
```
|
||||||
|
|
||||||
|
Flash the configured image to an SD card using [Etcher](https://balena.io/etcher).
|
||||||
|
Insert the SD card into the device and power it on. The device will register with
|
||||||
|
the openBalena server and after about two minutes will be inspectable:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
balena devices
|
||||||
|
ID UUID DEVICE NAME DEVICE TYPE APPLICATION NAME STATUS IS ONLINE SUPERVISOR VERSION OS VERSION
|
||||||
|
4 59d7700 winter-tree raspberrypi3 myApp Idle true 11.14.0 balenaOS 2.58.3+rev1
|
||||||
|
|
||||||
|
balena device 59d7700
|
||||||
|
== WINTER TREE
|
||||||
|
ID: 4
|
||||||
|
DEVICE TYPE: raspberrypi3
|
||||||
|
STATUS: online
|
||||||
|
IS ONLINE: true
|
||||||
|
IP ADDRESS: 192.168.43.247
|
||||||
|
APPLICATION NAME: myApp
|
||||||
|
UUID: 59d7700755ec5de06783eda8034c9d3d
|
||||||
|
SUPERVISOR VERSION: 11.14.0
|
||||||
|
OS VERSION: balenaOS 2.58.3+rev1
|
||||||
|
```
|
||||||
|
|
||||||
|
It's time to deploy code to the device.
|
||||||
|
|
||||||
|
### Deploy a project
|
||||||
|
|
||||||
|
Application release images are built on the local machine using the balena CLI.
|
||||||
|
Ensure the root certificate has been correctly installed on the local machine,
|
||||||
|
as discussed above.
|
||||||
|
|
||||||
|
Let's create a trivial project that logs "Idling...". On an empty directory,
|
||||||
|
create a new file named `Dockerfile.template` with the following contents:
|
||||||
|
|
||||||
|
```dockerfile
|
||||||
|
FROM balenalib/%%BALENA_MACHINE_NAME%%-alpine
|
||||||
|
|
||||||
|
CMD [ "balena-idle" ]
|
||||||
|
```
|
||||||
|
|
||||||
|
Then build and deploy the project with:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
balena deploy myApp --logs
|
||||||
|
```
|
||||||
|
|
||||||
|
The project will have been successfully built when a friendly unicorn appears in
|
||||||
|
the terminal:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
[Info] Compose file detected
|
||||||
|
...
|
||||||
|
[Info] Creating release...
|
||||||
|
[Info] Pushing images to registry...
|
||||||
|
[Info] Saving release...
|
||||||
|
[Success] Deploy succeeded!
|
||||||
|
[Success] Release: f62a74c220b92949ec78761c74366046
|
||||||
|
|
||||||
|
\
|
||||||
|
\
|
||||||
|
\\
|
||||||
|
\\
|
||||||
|
>\/7
|
||||||
|
_.-(6' \
|
||||||
|
(=___._/` \
|
||||||
|
) \ |
|
||||||
|
/ / |
|
||||||
|
/ > /
|
||||||
|
j < _\
|
||||||
|
_.-' : ``.
|
||||||
|
\ r=._\ `.
|
||||||
|
<`\\_ \ .`-.
|
||||||
|
\ r-7 `-. ._ ' . `\
|
||||||
|
\`, `-.`7 7) )
|
||||||
|
\/ \| \' / `-._
|
||||||
|
|| .'
|
||||||
|
\\ (
|
||||||
|
>\ >
|
||||||
|
,.-' >.'
|
||||||
|
<.'_.''
|
||||||
|
<'
|
||||||
|
```
|
||||||
|
|
||||||
|
This command packages up the local directory, creates a new Docker image from
|
||||||
|
it and pushes it to the openBalena server. In turn, the server will deploy it to
|
||||||
|
all provisioned devices and within a couple of minutes, they will all run the
|
||||||
|
new release. Logs can be viewed with:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
balena logs 59d7700 --tail
|
||||||
|
[Logs] [10/28/2020, 11:40:16 AM] Supervisor starting
|
||||||
|
[Logs] [10/28/2020, 11:40:50 AM] Creating network 'default'
|
||||||
|
[Logs] [10/28/2020, 11:42:38 AM] Creating volume 'resin-data'
|
||||||
|
[Logs] [10/28/2020, 11:42:40 AM] Downloading image …
|
||||||
|
…
|
||||||
|
[Logs] [10/28/2020, 11:44:00 AM] [main] Idling...
|
||||||
|
```
|
||||||
|
|
||||||
|
Enjoy Balenafying All the Things!
|
14
docs/03-next-steps.md
Normal file
14
docs/03-next-steps.md
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
# Next steps
|
||||||
|
|
||||||
|
- Try out [local mode](https://www.balena.io/docs/learn/develop/local-mode),
|
||||||
|
which allows you to build and sync code to your device locally for rapid
|
||||||
|
development.
|
||||||
|
- Develop an application with [multiple containers](https://www.balena.io/docs/learn/develop/multicontainer)
|
||||||
|
to provide a more modular approach to application management.
|
||||||
|
- Manage your device fleet with the use of [configuration](https://www.balena.io/docs/learn/manage/configuration/)
|
||||||
|
and [environment](https://www.balena.io/docs/learn/manage/serv-vars/) variables.
|
||||||
|
- Explore our [example projects](https://balena.io/blog/tags/etcher-featured/)
|
||||||
|
to give you an idea of more things you can do with balena.
|
||||||
|
- If you find yourself stuck or confused, help is just [a click away](https://www.balena.io/support).
|
||||||
|
- Pin selected devices to selected code releases using
|
||||||
|
[sample scripts](https://github.com/balena-io-examples/staged-releases).
|
17
docs/04-differences-openbalena-balenacloud.md
Normal file
17
docs/04-differences-openbalena-balenacloud.md
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
# Differences between openBalena and balenaCloud
|
||||||
|
|
||||||
|
| openBalena | balenaCloud |
|
||||||
|
| ----- | ---- |
|
||||||
|
| Device updates using full images | Device updates using [delta images](https://www.balena.io/docs/learn/deploy/delta/) |
|
||||||
|
| Support for a single user | Support for [multiple users](https://www.balena.io/docs/learn/manage/account/#application-members) |
|
||||||
|
| Self-hosted deployment and scaling | balena-managed scaling and deployment |
|
||||||
|
| Community support via [forums][forums] | Private support on [paid plans](https://www.balena.io/pricing/) |
|
||||||
|
| Deploy via `balena deploy` only | Build remotely with native builders using [`balena push`](https://www.balena.io/docs/learn/deploy/deployment/#balena-push) or [`git push`](https://www.balena.io/docs/learn/deploy/deployment/#git-push) |
|
||||||
|
| No support for building via `git push` | Use the same CI workflow with [`git push`](https://www.balena.io/docs/learn/deploy/deployment/#git-push) |
|
||||||
|
| No public URL support | Serve websites directly from device with [public device URLs](https://www.balena.io/docs/learn/manage/actions/#enable-public-device-url) |
|
||||||
|
| Management via `balena-cli` only | Cloud-based device management dashboard |
|
||||||
|
| Download images from [balena.io][balena-os-website] | Download preconfigured images directly from the dashboard |
|
||||||
|
| No supported remote diagnostics | Remote device diagnostics |
|
||||||
|
| Supported devices: Raspberry Pi family, the Intel NUC, the NVIDIA Jetson TX2, and the balenaFin | All the devices listed in balena's [reference documentation](https://www.balena.io/docs/reference/hardware/devices/) |
|
||||||
|
|
||||||
|
Additionally, refer back to the [roadmap](#roadmap) above for planned but not yet implemented features.
|
13
docs/05-roadmap.md
Normal file
13
docs/05-roadmap.md
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
# openbalena roadmap
|
||||||
|
|
||||||
|
OpenBalena is currently in beta. While fully functional, it lacks features we
|
||||||
|
consider important before we can comfortably call it production-ready. During
|
||||||
|
this phase, don’t be alarmed if things don’t work as expected just yet (and
|
||||||
|
please let us know about any bugs or errors you encounter!). The following
|
||||||
|
improvements and new functionality is planned:
|
||||||
|
|
||||||
|
- Full documentation
|
||||||
|
- Full test suite
|
||||||
|
- Simplified deployment
|
||||||
|
- Remote host OS updates
|
||||||
|
- Support for custom device types
|
BIN
docs/assets/balenaOS-components.png
Normal file
BIN
docs/assets/balenaOS-components.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 100 KiB |
BIN
docs/assets/balenaOS-read-only-rootfs.png
Normal file
BIN
docs/assets/balenaOS-read-only-rootfs.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 174 KiB |
BIN
docs/assets/image-partition-layout.png
Normal file
BIN
docs/assets/image-partition-layout.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 122 KiB |
@ -11,10 +11,6 @@ echo_bold() {
|
|||||||
printf "\\033[1m%s\\033[0m\\n" "$@"
|
printf "\\033[1m%s\\033[0m\\n" "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
echo_bold_stderr() {
|
|
||||||
printf "\\033[1m%s\\033[0m\\n" "$@" 1>&2
|
|
||||||
}
|
|
||||||
|
|
||||||
VERSIONS_FILE="${BASE_DIR}/compose/versions"
|
VERSIONS_FILE="${BASE_DIR}/compose/versions"
|
||||||
if [ ! -f "$VERSIONS_FILE" ]; then
|
if [ ! -f "$VERSIONS_FILE" ]; then
|
||||||
echo_bold "No service versions defined in ${VERSIONS_FILE}"
|
echo_bold "No service versions defined in ${VERSIONS_FILE}"
|
||||||
@ -35,9 +31,6 @@ if [ ${OPENBALENA_HOST_NAME: -6} == ".local" ]; then
|
|||||||
INCLUDE_MDNS="-f ${BASE_DIR}/compose/mdns.yml"
|
INCLUDE_MDNS="-f ${BASE_DIR}/compose/mdns.yml"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# show a warning to update your balena CLI tool...
|
|
||||||
echo_bold_stderr "IMPORTANT: Please update your Balena CLI installation to version v12.38.5"
|
|
||||||
|
|
||||||
# shellcheck source=/dev/null
|
# shellcheck source=/dev/null
|
||||||
source "${VERSIONS_FILE}"; docker-compose \
|
source "${VERSIONS_FILE}"; docker-compose \
|
||||||
--project-name 'openbalena' \
|
--project-name 'openbalena' \
|
||||||
|
@ -6,11 +6,11 @@ VOLUME [ "/usr/src/app/certs" ]
|
|||||||
|
|
||||||
RUN apk add --update bash curl git openssl ncurses socat
|
RUN apk add --update bash curl git openssl ncurses socat
|
||||||
|
|
||||||
# from https://github.com/Neilpang/acme.sh/releases/tag/2.8.5
|
# from https://github.com/Neilpang/acme.sh/releases/tag/3.0.1
|
||||||
RUN git clone https://github.com/Neilpang/acme.sh.git && \
|
RUN git clone https://github.com/Neilpang/acme.sh.git && \
|
||||||
cd acme.sh && \
|
cd acme.sh && \
|
||||||
git fetch && git fetch --tags && \
|
git fetch && git fetch --tags && \
|
||||||
git checkout 2.8.5 . && \
|
git checkout 3.0.1 . && \
|
||||||
./acme.sh --install \
|
./acme.sh --install \
|
||||||
--cert-home /usr/src/app/certs
|
--cert-home /usr/src/app/certs
|
||||||
|
|
||||||
|
@ -159,7 +159,7 @@ acquireCertificate() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
logInfo "Issuing certificates..."
|
logInfo "Issuing certificates..."
|
||||||
"$ACME_BIN" --issue "${ACME_OPTS[@]}" "${ACME_DOMAIN_ARGS[@]}"
|
"$ACME_BIN" --server letsencrypt --issue "${ACME_OPTS[@]}" "${ACME_DOMAIN_ARGS[@]}"
|
||||||
|
|
||||||
logInfo "Installing certificates..." && \
|
logInfo "Installing certificates..." && \
|
||||||
"$ACME_BIN" --install-cert "${ACME_DOMAIN_ARGS[@]}" \
|
"$ACME_BIN" --install-cert "${ACME_DOMAIN_ARGS[@]}" \
|
||||||
|
@ -1,56 +1,119 @@
|
|||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
MIIFATCCAumgAwIBAgIRAKc9ZKBASymy5TLOEp57N98wDQYJKoZIhvcNAQELBQAw
|
MIIDrzCCApegAwIBAgIRALqMZiRNaRF4EGZS9urlj+0wDQYJKoZIhvcNAQELBQAw
|
||||||
GjEYMBYGA1UEAwwPRmFrZSBMRSBSb290IFgxMB4XDTE2MDMyMzIyNTM0NloXDTM2
|
cTELMAkGA1UEBhMCVVMxMzAxBgNVBAoTKihTVEFHSU5HKSBJbnRlcm5ldCBTZWN1
|
||||||
MDMyMzIyNTM0NlowGjEYMBYGA1UEAwwPRmFrZSBMRSBSb290IFgxMIICIjANBgkq
|
cml0eSBSZXNlYXJjaCBHcm91cDEtMCsGA1UEAxMkKFNUQUdJTkcpIERvY3RvcmVk
|
||||||
hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA+pYHvQw5iU3v2b3iNuYNKYgsWD6KU7aJ
|
IER1cmlhbiBSb290IENBIFgzMB4XDTAwMDkzMDIxMTIxOVoXDTIxMDEzMDE0MDEx
|
||||||
diddtZQxSWYzUI3U0I1UsRPTxnhTifs/M9NW4ZlV13ZfB7APwC8oqKOIiwo7IwlP
|
NVowcTELMAkGA1UEBhMCVVMxMzAxBgNVBAoTKihTVEFHSU5HKSBJbnRlcm5ldCBT
|
||||||
xg0VKgyz+kT8RJfYr66PPIYP0fpTeu42LpMJ+CKo9sbpgVNDZN2z/qiXrRNX/VtG
|
ZWN1cml0eSBSZXNlYXJjaCBHcm91cDEtMCsGA1UEAxMkKFNUQUdJTkcpIERvY3Rv
|
||||||
TkPV7a44fZ5bHHVruAxvDnylpQxJobtCBWlJSsbIRGFHMc2z88eUz9NmIOWUKGGj
|
cmVkIER1cmlhbiBSb290IENBIFgzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
||||||
EmP76x8OfRHpIpuxRSCjn0+i9+hR2siIOpcMOGd+40uVJxbRRP5ZXnUFa2fF5FWd
|
CgKCAQEAqUZjoRbjgXecPWxXkGCUEXcNrupL7dkbwc0jUTLFEDvcyfD1gYekY5uL
|
||||||
O0u0RPI8HON0ovhrwPJY+4eWKkQzyC611oLPYGQ4EbifRsTsCxUZqyUuStGyp8oa
|
D19uzYTl0pKZzzDXHJPnJY5EEp27nACFOm8XzX9sORAangP0OnGUkXJZDHM+8cX2
|
||||||
aoSKfF6X0+KzGgwwnrjRTUpIl19A92KR0Noo6h622OX+4sZiO/JQdkuX5w/HupK0
|
EHJbfj0lg1JirRF3w2u1/KRuFEvIlWg3FdXdsSFHBF5z1Ij7MLn7Ska5c/5fKsDW
|
||||||
A0M0WSMCvU6GOhjGotmh2VTEJwHHY4+TUk0iQYRtv1crONklyZoAQPD76hCrC8Cr
|
EYzOMB6EBW1T9RDkVk/Q965EwDT4bR6BOXakasgfKrH9m1f6l9MmA0VnXdw9rZ+s
|
||||||
IbgsZLfTMC8TWUoMbyUDgvgYkHKMoPm0VGVVuwpRKJxv7+2wXO+pivrrUl2Q9fPe
|
TvMHG1yWBqNMSqCKe3jG6caWgN7llEbj5YsCWs32bz2dMftGkXBPcy1fNWvpeT7G
|
||||||
Kk055nJLMV9yPUdig8othUKrRfSxli946AEV1eEOhxddfEwBE3Lt2xn0hhiIedbb
|
Dz2Z0QWTlHkyXA2kGw32fdoXLHWOEwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYw
|
||||||
Ftf/5kEWFZkXyUmMJK8Ra76Kus2ABueUVEcZ48hrRr1Hf1N9n59VbTUaXgeiZA50
|
DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUCFfaiceiU3kMT93gkI90uuInc0Qw
|
||||||
qXf2bymE6F8CAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMB
|
DQYJKoZIhvcNAQELBQADggEBAF7lEtHuSN4j+xFQsM/ujaVKcn57VbrbTecnspmJ
|
||||||
Af8wHQYDVR0OBBYEFMEmdKSKRKDm+iAo2FwjmkWIGHngMA0GCSqGSIb3DQEBCwUA
|
JA7Hrn6OErshGNO0p1/u14c7tGHKjtF1tEFFSVhbNXlKw9O99AfhmlFgdGcJKEHn
|
||||||
A4ICAQBCPw74M9X/Xx04K1VAES3ypgQYH5bf9FXVDrwhRFSVckria/7dMzoF5wln
|
ZctBB8bhNO387vbiCYIHdU/nSba9MCDYw2/UCtobZ6ao+KJA3IKmPixctAbn2Ikr
|
||||||
uq9NGsjkkkDg17AohcQdr8alH4LvPdxpKr3BjpvEcmbqF8xH+MbbeUEnmbSfLI8H
|
EN9X0SXNP1gnqQP4VhZJIh6cd7rg9MimzoLlMI3m2z11dSGYbh8OWSdvA7aLbSGo
|
||||||
sefuhXF9AF/9iYvpVNC8FmJ0OhiVv13VgMQw0CRKkbtjZBf8xaEhq/YqxWVsgOjm
|
gDO5H4WD8fgqEG0reSBO89eeH+we+BZxQtBiU3b9VMV0drc+7zC2NbXqeQwu6QTl
|
||||||
dm5CAQ2X0aX7502x8wYRgMnZhA5goC1zVWBVAi8yhhmlhhoDUfg17cXkmaJC5pDd
|
fbJ8ytqcqUy0g5XSE6WCzPOL3H9r0j9G64dfotGlBA5tG6w=
|
||||||
oenZ9NVhW8eDb03MFCrWNvIh89DDeCGWuWfDltDq0n3owyL0IeSn7RfpSclpxVmV
|
-----END CERTIFICATE-----
|
||||||
/53jkYjwIgxIG7Gsv0LKMbsf6QdBcTjhvfZyMIpBRkTe3zuHd2feKzY9lEkbRvRQ
|
-----BEGIN CERTIFICATE-----
|
||||||
zbh4Ps5YBnG6CKJPTbe2hfi3nhnw/MyEmF3zb0hzvLWNrR9XW3ibb2oL3424XOwc
|
MIIFmDCCA4CgAwIBAgIQU9C87nMpOIFKYpfvOHFHFDANBgkqhkiG9w0BAQsFADBm
|
||||||
VjrTSCLzO9Rv6s5wi03qoWvKAQQAElqTYRHhynJ3w6wuvKYF5zcZF3MDnrVGLbh1
|
MQswCQYDVQQGEwJVUzEzMDEGA1UEChMqKFNUQUdJTkcpIEludGVybmV0IFNlY3Vy
|
||||||
Q9ePRFBCiXOQ6wPLoUhrrbZ8LpFUFYDXHMtYM7P9sc9IAWoONXREJaO08zgFtMp4
|
aXR5IFJlc2VhcmNoIEdyb3VwMSIwIAYDVQQDExkoU1RBR0lORykgUHJldGVuZCBQ
|
||||||
8iyIYUyQAbsvx8oD2M8kRvrIRSrRJSl6L957b4AFiLIQ/GgV2curs0jje7Edx34c
|
ZWFyIFgxMB4XDTE1MDYwNDExMDQzOFoXDTM1MDYwNDExMDQzOFowZjELMAkGA1UE
|
||||||
idWw1VrejtwclobqNMVtG3EiPUIpJGpbMcJgbiLSmKkrvQtGng==
|
BhMCVVMxMzAxBgNVBAoTKihTVEFHSU5HKSBJbnRlcm5ldCBTZWN1cml0eSBSZXNl
|
||||||
|
YXJjaCBHcm91cDEiMCAGA1UEAxMZKFNUQUdJTkcpIFByZXRlbmQgUGVhciBYMTCC
|
||||||
|
AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALbagEdDTa1QgGBWSYkyMhsc
|
||||||
|
ZXENOBaVRTMX1hceJENgsL0Ma49D3MilI4KS38mtkmdF6cPWnL++fgehT0FbRHZg
|
||||||
|
jOEr8UAN4jH6omjrbTD++VZneTsMVaGamQmDdFl5g1gYaigkkmx8OiCO68a4QXg4
|
||||||
|
wSyn6iDipKP8utsE+x1E28SA75HOYqpdrk4HGxuULvlr03wZGTIf/oRt2/c+dYmD
|
||||||
|
oaJhge+GOrLAEQByO7+8+vzOwpNAPEx6LW+crEEZ7eBXih6VP19sTGy3yfqK5tPt
|
||||||
|
TdXXCOQMKAp+gCj/VByhmIr+0iNDC540gtvV303WpcbwnkkLYC0Ft2cYUyHtkstO
|
||||||
|
fRcRO+K2cZozoSwVPyB8/J9RpcRK3jgnX9lujfwA/pAbP0J2UPQFxmWFRQnFjaq6
|
||||||
|
rkqbNEBgLy+kFL1NEsRbvFbKrRi5bYy2lNms2NJPZvdNQbT/2dBZKmJqxHkxCuOQ
|
||||||
|
FjhJQNeO+Njm1Z1iATS/3rts2yZlqXKsxQUzN6vNbD8KnXRMEeOXUYvbV4lqfCf8
|
||||||
|
mS14WEbSiMy87GB5S9ucSV1XUrlTG5UGcMSZOBcEUpisRPEmQWUOTWIoDQ5FOia/
|
||||||
|
GI+Ki523r2ruEmbmG37EBSBXdxIdndqrjy+QVAmCebyDx9eVEGOIpn26bW5LKeru
|
||||||
|
mJxa/CFBaKi4bRvmdJRLAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMB
|
||||||
|
Af8EBTADAQH/MB0GA1UdDgQWBBS182Xy/rAKkh/7PH3zRKCsYyXDFDANBgkqhkiG
|
||||||
|
9w0BAQsFAAOCAgEAncDZNytDbrrVe68UT6py1lfF2h6Tm2p8ro42i87WWyP2LK8Y
|
||||||
|
nLHC0hvNfWeWmjZQYBQfGC5c7aQRezak+tHLdmrNKHkn5kn+9E9LCjCaEsyIIn2j
|
||||||
|
qdHlAkepu/C3KnNtVx5tW07e5bvIjJScwkCDbP3akWQixPpRFAsnP+ULx7k0aO1x
|
||||||
|
qAeaAhQ2rgo1F58hcflgqKTXnpPM02intVfiVVkX5GXpJjK5EoQtLceyGOrkxlM/
|
||||||
|
sTPq4UrnypmsqSagWV3HcUlYtDinc+nukFk6eR4XkzXBbwKajl0YjztfrCIHOn5Q
|
||||||
|
CJL6TERVDbM/aAPly8kJ1sWGLuvvWYzMYgLzDul//rUF10gEMWaXVZV51KpS9DY/
|
||||||
|
5CunuvCXmEQJHo7kGcViT7sETn6Jz9KOhvYcXkJ7po6d93A/jy4GKPIPnsKKNEmR
|
||||||
|
xUuXY4xRdh45tMJnLTUDdC9FIU0flTeO9/vNpVA8OPU1i14vCz+MU8KX1bV3GXm/
|
||||||
|
fxlB7VBBjX9v5oUep0o/j68R/iDlCOM4VVfRa8gX6T2FU7fNdatvGro7uQzIvWof
|
||||||
|
gN9WUwCbEMBy/YhBSrXycKA8crgGg3x1mIsopn88JKwmMBa68oS7EHM9w7C4y71M
|
||||||
|
7DiA+/9Qdp9RBWJpTS9i/mDnJg1xvo8Xz49mrrgfmcAXTCJqXi24NatI3Oc=
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIICTjCCAdSgAwIBAgIRAIPgc3k5LlLVLtUUvs4K/QcwCgYIKoZIzj0EAwMwaDEL
|
||||||
|
MAkGA1UEBhMCVVMxMzAxBgNVBAoTKihTVEFHSU5HKSBJbnRlcm5ldCBTZWN1cml0
|
||||||
|
eSBSZXNlYXJjaCBHcm91cDEkMCIGA1UEAxMbKFNUQUdJTkcpIEJvZ3VzIEJyb2Nj
|
||||||
|
b2xpIFgyMB4XDTIwMDkwNDAwMDAwMFoXDTQwMDkxNzE2MDAwMFowaDELMAkGA1UE
|
||||||
|
BhMCVVMxMzAxBgNVBAoTKihTVEFHSU5HKSBJbnRlcm5ldCBTZWN1cml0eSBSZXNl
|
||||||
|
YXJjaCBHcm91cDEkMCIGA1UEAxMbKFNUQUdJTkcpIEJvZ3VzIEJyb2Njb2xpIFgy
|
||||||
|
MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEOvS+w1kCzAxYOJbA06Aw0HFP2tLBLKPo
|
||||||
|
FQqR9AMskl1nC2975eQqycR+ACvYelA8rfwFXObMHYXJ23XLB+dAjPJVOJ2OcsjT
|
||||||
|
VqO4dcDWu+rQ2VILdnJRYypnV1MMThVxo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYD
|
||||||
|
VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU3tGjWWQOwZo2o0busBB2766XlWYwCgYI
|
||||||
|
KoZIzj0EAwMDaAAwZQIwRcp4ZKBsq9XkUuN8wfX+GEbY1N5nmCRc8e80kUkuAefo
|
||||||
|
uc2j3cICeXo1cOybQ1iWAjEA3Ooawl8eQyR4wrjCofUE8h44p0j7Yl/kBlJZT8+9
|
||||||
|
vbtH7QiVzeKCOTQPINyRql6P
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIFWzCCA0OgAwIBAgIQTfQrldHumzpMLrM7jRBd1jANBgkqhkiG9w0BAQsFADBm
|
||||||
|
MQswCQYDVQQGEwJVUzEzMDEGA1UEChMqKFNUQUdJTkcpIEludGVybmV0IFNlY3Vy
|
||||||
|
aXR5IFJlc2VhcmNoIEdyb3VwMSIwIAYDVQQDExkoU1RBR0lORykgUHJldGVuZCBQ
|
||||||
|
ZWFyIFgxMB4XDTIwMDkwNDAwMDAwMFoXDTI1MDkxNTE2MDAwMFowWTELMAkGA1UE
|
||||||
|
BhMCVVMxIDAeBgNVBAoTFyhTVEFHSU5HKSBMZXQncyBFbmNyeXB0MSgwJgYDVQQD
|
||||||
|
Ex8oU1RBR0lORykgQXJ0aWZpY2lhbCBBcHJpY290IFIzMIIBIjANBgkqhkiG9w0B
|
||||||
|
AQEFAAOCAQ8AMIIBCgKCAQEAu6TR8+74b46mOE1FUwBrvxzEYLck3iasmKrcQkb+
|
||||||
|
gy/z9Jy7QNIAl0B9pVKp4YU76JwxF5DOZZhi7vK7SbCkK6FbHlyU5BiDYIxbbfvO
|
||||||
|
L/jVGqdsSjNaJQTg3C3XrJja/HA4WCFEMVoT2wDZm8ABC1N+IQe7Q6FEqc8NwmTS
|
||||||
|
nmmRQm4TQvr06DP+zgFK/MNubxWWDSbSKKTH5im5j2fZfg+j/tM1bGaczFWw8/lS
|
||||||
|
nukyn5J2L+NJYnclzkXoh9nMFnyPmVbfyDPOc4Y25aTzVoeBKXa/cZ5MM+WddjdL
|
||||||
|
biWvm19f1sYn1aRaAIrkppv7kkn83vcth8XCG39qC2ZvaQIDAQABo4IBEDCCAQww
|
||||||
|
DgYDVR0PAQH/BAQDAgGGMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATAS
|
||||||
|
BgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBTecnpI3zHDplDfn4Uj31c3S10u
|
||||||
|
ZTAfBgNVHSMEGDAWgBS182Xy/rAKkh/7PH3zRKCsYyXDFDA2BggrBgEFBQcBAQQq
|
||||||
|
MCgwJgYIKwYBBQUHMAKGGmh0dHA6Ly9zdGcteDEuaS5sZW5jci5vcmcvMCsGA1Ud
|
||||||
|
HwQkMCIwIKAeoByGGmh0dHA6Ly9zdGcteDEuYy5sZW5jci5vcmcvMCIGA1UdIAQb
|
||||||
|
MBkwCAYGZ4EMAQIBMA0GCysGAQQBgt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCN
|
||||||
|
DLam9yN0EFxxn/3p+ruWO6n/9goCAM5PT6cC6fkjMs4uas6UGXJjr5j7PoTQf3C1
|
||||||
|
vuxiIGRJC6qxV7yc6U0X+w0Mj85sHI5DnQVWN5+D1er7mp13JJA0xbAbHa3Rlczn
|
||||||
|
y2Q82XKui8WHuWra0gb2KLpfboYj1Ghgkhr3gau83pC/WQ8HfkwcvSwhIYqTqxoZ
|
||||||
|
Uq8HIf3M82qS9aKOZE0CEmSyR1zZqQxJUT7emOUapkUN9poJ9zGc+FgRZvdro0XB
|
||||||
|
yphWXDaqMYph0DxW/10ig5j4xmmNDjCRmqIKsKoWA52wBTKKXK1na2ty/lW5dhtA
|
||||||
|
xkz5rVZFd4sgS4J0O+zm6d5GRkWsNJ4knotGXl8vtS3X40KXeb3A5+/3p0qaD215
|
||||||
|
Xq8oSNORfB2oI1kQuyEAJ5xvPTdfwRlyRG3lFYodrRg6poUBD/8fNTXMtzydpRgy
|
||||||
|
zUQZh/18F6B/iW6cbiRN9r2Hkh05Om+q0/6w0DdZe+8YrNpfhSObr/1eVZbKGMIY
|
||||||
|
qKmyZbBNu5ysENIK5MPc14mUeKmFjpN840VR5zunoU52lqpLDua/qIM8idk86xGW
|
||||||
|
xx2ml43DO/Ya/tVZVok0mO0TUjzJIfPqyvr455IsIut4RlCR9Iq0EDTve2/ZwCuG
|
||||||
|
hSjpTUFGSiQrR2JK2Evp+o6AETUkBCO1aw0PpQBPDQ==
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDCzCCApGgAwIBAgIRALRY4992FVxZJKOJ3bpffWIwCgYIKoZIzj0EAwMwaDEL
|
||||||
|
MAkGA1UEBhMCVVMxMzAxBgNVBAoTKihTVEFHSU5HKSBJbnRlcm5ldCBTZWN1cml0
|
||||||
|
eSBSZXNlYXJjaCBHcm91cDEkMCIGA1UEAxMbKFNUQUdJTkcpIEJvZ3VzIEJyb2Nj
|
||||||
|
b2xpIFgyMB4XDTIwMDkwNDAwMDAwMFoXDTI1MDkxNTE2MDAwMFowVTELMAkGA1UE
|
||||||
|
BhMCVVMxIDAeBgNVBAoTFyhTVEFHSU5HKSBMZXQncyBFbmNyeXB0MSQwIgYDVQQD
|
||||||
|
ExsoU1RBR0lORykgRXJzYXR6IEVkYW1hbWUgRTEwdjAQBgcqhkjOPQIBBgUrgQQA
|
||||||
|
IgNiAAT9v/PJUtHOTk28nXCXrpP665vI4Z094h8o7R+5E6yNajZa0UubqjpZFoGq
|
||||||
|
u785/vGXj6mdfIzc9boITGusZCSWeMj5ySMZGZkS+VSvf8VQqj+3YdEu4PLZEjBA
|
||||||
|
ivRFpEejggEQMIIBDDAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0lBBYwFAYIKwYBBQUH
|
||||||
|
AwIGCCsGAQUFBwMBMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFOv5JcKA
|
||||||
|
KGbibQiSMvPC4a3D/zVFMB8GA1UdIwQYMBaAFN7Ro1lkDsGaNqNG7rAQdu+ul5Vm
|
||||||
|
MDYGCCsGAQUFBwEBBCowKDAmBggrBgEFBQcwAoYaaHR0cDovL3N0Zy14Mi5pLmxl
|
||||||
|
bmNyLm9yZy8wKwYDVR0fBCQwIjAgoB6gHIYaaHR0cDovL3N0Zy14Mi5jLmxlbmNy
|
||||||
|
Lm9yZy8wIgYDVR0gBBswGTAIBgZngQwBAgEwDQYLKwYBBAGC3xMBAQEwCgYIKoZI
|
||||||
|
zj0EAwMDaAAwZQIwXcZbdgxcGH9rTErfSTkXfBKKygU0yO7OpbuNeY1id0FZ/hRY
|
||||||
|
N5fdLOGuc+aHfCsMAjEA0P/xwKr6NQ9MN7vrfGAzO397PApdqfM7VdFK18aEu1xm
|
||||||
|
3HMFKzIR8eEPsMx4smMl
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIEqzCCApOgAwIBAgIRAIvhKg5ZRO08VGQx8JdhT+UwDQYJKoZIhvcNAQELBQAw
|
|
||||||
GjEYMBYGA1UEAwwPRmFrZSBMRSBSb290IFgxMB4XDTE2MDUyMzIyMDc1OVoXDTM2
|
|
||||||
MDUyMzIyMDc1OVowIjEgMB4GA1UEAwwXRmFrZSBMRSBJbnRlcm1lZGlhdGUgWDEw
|
|
||||||
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDtWKySDn7rWZc5ggjz3ZB0
|
|
||||||
8jO4xti3uzINfD5sQ7Lj7hzetUT+wQob+iXSZkhnvx+IvdbXF5/yt8aWPpUKnPym
|
|
||||||
oLxsYiI5gQBLxNDzIec0OIaflWqAr29m7J8+NNtApEN8nZFnf3bhehZW7AxmS1m0
|
|
||||||
ZnSsdHw0Fw+bgixPg2MQ9k9oefFeqa+7Kqdlz5bbrUYV2volxhDFtnI4Mh8BiWCN
|
|
||||||
xDH1Hizq+GKCcHsinDZWurCqder/afJBnQs+SBSL6MVApHt+d35zjBD92fO2Je56
|
|
||||||
dhMfzCgOKXeJ340WhW3TjD1zqLZXeaCyUNRnfOmWZV8nEhtHOFbUCU7r/KkjMZO9
|
|
||||||
AgMBAAGjgeMwgeAwDgYDVR0PAQH/BAQDAgGGMBIGA1UdEwEB/wQIMAYBAf8CAQAw
|
|
||||||
HQYDVR0OBBYEFMDMA0a5WCDMXHJw8+EuyyCm9Wg6MHoGCCsGAQUFBwEBBG4wbDA0
|
|
||||||
BggrBgEFBQcwAYYoaHR0cDovL29jc3Auc3RnLXJvb3QteDEubGV0c2VuY3J5cHQu
|
|
||||||
b3JnLzA0BggrBgEFBQcwAoYoaHR0cDovL2NlcnQuc3RnLXJvb3QteDEubGV0c2Vu
|
|
||||||
Y3J5cHQub3JnLzAfBgNVHSMEGDAWgBTBJnSkikSg5vogKNhcI5pFiBh54DANBgkq
|
|
||||||
hkiG9w0BAQsFAAOCAgEABYSu4Il+fI0MYU42OTmEj+1HqQ5DvyAeyCA6sGuZdwjF
|
|
||||||
UGeVOv3NnLyfofuUOjEbY5irFCDtnv+0ckukUZN9lz4Q2YjWGUpW4TTu3ieTsaC9
|
|
||||||
AFvCSgNHJyWSVtWvB5XDxsqawl1KzHzzwr132bF2rtGtazSqVqK9E07sGHMCf+zp
|
|
||||||
DQVDVVGtqZPHwX3KqUtefE621b8RI6VCl4oD30Olf8pjuzG4JKBFRFclzLRjo/h7
|
|
||||||
IkkfjZ8wDa7faOjVXx6n+eUQ29cIMCzr8/rNWHS9pYGGQKJiY2xmVC9h12H99Xyf
|
|
||||||
zWE9vb5zKP3MVG6neX1hSdo7PEAb9fqRhHkqVsqUvJlIRmvXvVKTwNCP3eCjRCCI
|
|
||||||
PTAvjV+4ni786iXwwFYNz8l3PmPLCyQXWGohnJ8iBm+5nk7O2ynaPVW0U2W+pt2w
|
|
||||||
SVuvdDM5zGv2f9ltNWUiYZHJ1mmO97jSY/6YfdOUH66iRtQtDkHBRdkNBsMbD+Em
|
|
||||||
2TgBldtHNSJBfB3pm9FblgOcJ0FSWcUDWJ7vO0+NTXlgrRofRT6pVywzxVo6dND0
|
|
||||||
WzYlTWeUVsO40xJqhgUQRER9YLOLxJ0O6C8i0xFxAMKOtSdodMB3RIwt7RFQ0uyt
|
|
||||||
n5Z5MqkYhlMI3J1tPRTp1nEt9fyGspBOO05gi148Qasp+3N+svqKomoQglNoAxU=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
Reference in New Issue
Block a user