boneIO 1.6.0.dev7__py3-none-any.whl → 1.6.0.dev8__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- boneio/core/cloud/data/init-certs-cloud.sh +11 -1
- boneio/migrations/assets/MANIFEST.sha256 +1 -1
- boneio/migrations/assets/docker/nodered/caddy/init-certs.sh +15 -2
- boneio/migrations/plans/1.4.4.json +1 -1
- boneio/migrations/plans/1.4.4.sig +2 -1
- boneio/migrations/plans/1.6.13.json +1 -1
- boneio/migrations/plans/1.6.13.sig +1 -1
- boneio/migrations/plans/1.6.14.json +1 -0
- boneio/migrations/plans/1.6.14.sig +1 -0
- boneio/migrations/plans/manifest.json +1 -1
- boneio/migrations/plans/manifest.sig +0 -0
- boneio/migrations/runner.py +48 -2
- boneio/migrations/versions/v1_6_13_custom_certificate.py +7 -0
- boneio/migrations/versions/v1_6_14_certificate_lifetime.py +48 -0
- boneio/version.py +1 -1
- {boneio-1.6.0.dev7.dist-info → boneio-1.6.0.dev8.dist-info}/METADATA +1 -1
- {boneio-1.6.0.dev7.dist-info → boneio-1.6.0.dev8.dist-info}/RECORD +21 -18
- {boneio-1.6.0.dev7.dist-info → boneio-1.6.0.dev8.dist-info}/WHEEL +0 -0
- {boneio-1.6.0.dev7.dist-info → boneio-1.6.0.dev8.dist-info}/entry_points.txt +0 -0
- {boneio-1.6.0.dev7.dist-info → boneio-1.6.0.dev8.dist-info}/licenses/LICENSE +0 -0
- {boneio-1.6.0.dev7.dist-info → boneio-1.6.0.dev8.dist-info}/top_level.txt +0 -0
|
@@ -74,6 +74,13 @@ fi
|
|
|
74
74
|
# Generate Caddyfile
|
|
75
75
|
cat > /tmp/Caddyfile << EOF
|
|
76
76
|
{
|
|
77
|
+
# Six months, not the twelve hours Caddy defaults to — see the
|
|
78
|
+
# non-cloud script. The intermediate has to outlive the leaves.
|
|
79
|
+
pki {
|
|
80
|
+
ca local {
|
|
81
|
+
intermediate_lifetime 365d
|
|
82
|
+
}
|
|
83
|
+
}
|
|
77
84
|
# Global options - empty for internal issuer
|
|
78
85
|
}
|
|
79
86
|
|
|
@@ -91,7 +98,10 @@ ${CLOUD_BLOCK}
|
|
|
91
98
|
|
|
92
99
|
# HTTPS with self-signed certificate (catch-all for hostname and IP access)
|
|
93
100
|
https:// {
|
|
94
|
-
tls
|
|
101
|
+
tls {
|
|
102
|
+
issuer internal {
|
|
103
|
+
lifetime 180d
|
|
104
|
+
}
|
|
95
105
|
on_demand
|
|
96
106
|
}
|
|
97
107
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
f2ed05c6f5934a15f12571139bdc225804f67b8c83561cc39868f7b2296d2697 docker/daemon.json
|
|
6
6
|
22dfe7d55e5ed85ea0f4149b7776b7504a12b91905701657a88840ae1208087c docker/nodered/caddy/502.html
|
|
7
|
-
|
|
7
|
+
93342a62f024235b2deefd2cd833ef72d7a9cf14a8ad0727ab0dc422e78e8388 docker/nodered/caddy/init-certs.sh
|
|
8
8
|
fba1a5bc6a6b6aaaff8cced9f6ee1350a16ad1a5ddde2af366c198881698d264 docker/nodered/docker-compose-cloud.yaml
|
|
9
9
|
cd90e1bcb6488669179c8e7a40a6265923e0fea045cc79d5b7559ebb309131b6 docker/nodered/docker-compose.yaml
|
|
10
10
|
bff00753c72fb17609a6f7b3a58ef78b7b394da12d19fd65b875f2889695e2b4 docker/nodered/node-red/settings.js
|
|
@@ -42,7 +42,10 @@ if [ -f "$CUSTOM_CERT" ] && [ -f "$CUSTOM_KEY" ]; then
|
|
|
42
42
|
TLS_DIRECTIVE="tls $CUSTOM_CERT $CUSTOM_KEY"
|
|
43
43
|
else
|
|
44
44
|
echo "Serving Caddy's own certificate (no uploaded one found)"
|
|
45
|
-
TLS_DIRECTIVE="tls
|
|
45
|
+
TLS_DIRECTIVE="tls {
|
|
46
|
+
issuer internal {
|
|
47
|
+
lifetime 180d
|
|
48
|
+
}
|
|
46
49
|
on_demand
|
|
47
50
|
}"
|
|
48
51
|
fi
|
|
@@ -50,7 +53,17 @@ fi
|
|
|
50
53
|
# Generate Caddyfile
|
|
51
54
|
cat > /tmp/Caddyfile << EOF
|
|
52
55
|
{
|
|
53
|
-
#
|
|
56
|
+
# The device's own certificate authority issues for six months rather
|
|
57
|
+
# than the twelve hours Caddy defaults to. Nobody trusts this authority
|
|
58
|
+
# until they choose to, and when they do — by installing the root on
|
|
59
|
+
# their own machines, or by clicking through once — a certificate that
|
|
60
|
+
# expires the same evening undoes that daily. The intermediate has to
|
|
61
|
+
# outlive the leaves it signs, or Caddy refuses to start.
|
|
62
|
+
pki {
|
|
63
|
+
ca local {
|
|
64
|
+
intermediate_lifetime 365d
|
|
65
|
+
}
|
|
66
|
+
}
|
|
54
67
|
}
|
|
55
68
|
|
|
56
69
|
# HTTP — redirect to HTTPS.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"action":"install_file","dst":"/home/boneio/docker/nodered/caddy/init-certs.sh","expected_sha256":"
|
|
1
|
+
[{"action":"install_file","dst":"/home/boneio/docker/nodered/caddy/init-certs.sh","expected_sha256":"93342a62f024235b2deefd2cd833ef72d7a9cf14a8ad0727ab0dc422e78e8388","group":"boneio","mode":493,"owner":"boneio","src":"docker/nodered/caddy/init-certs.sh","template_vars":{}},{"action":"install_file","dst":"/home/boneio/docker/nodered/caddy/502.html","expected_sha256":"22dfe7d55e5ed85ea0f4149b7776b7504a12b91905701657a88840ae1208087c","group":"boneio","mode":420,"owner":"boneio","src":"docker/nodered/caddy/502.html","template_vars":{}},{"action":"install_file","dst":"/home/boneio/docker/nodered/docker-compose.yaml","expected_sha256":"cd90e1bcb6488669179c8e7a40a6265923e0fea045cc79d5b7559ebb309131b6","group":"boneio","mode":420,"owner":"boneio","src":"docker/nodered/docker-compose.yaml","template_vars":{}},{"action":"remove_file","path":"/home/boneio/docker/nodered/nginx/default.conf"}]
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
�
|
|
2
|
+
MU0���W��r�Z������/�yc] 9�Y��*g;O�u���OU���W����k�Q�
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"action":"install_file","dst":"/home/boneio/docker/nodered/caddy/init-certs.sh","expected_sha256":"
|
|
1
|
+
[{"action":"install_file","dst":"/home/boneio/docker/nodered/caddy/init-certs.sh","expected_sha256":"93342a62f024235b2deefd2cd833ef72d7a9cf14a8ad0727ab0dc422e78e8388","group":"boneio","mode":493,"owner":"boneio","src":"docker/nodered/caddy/init-certs.sh","template_vars":{}}]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
�,�L�5�02i%�u��G�c:m �����CM 0�z���X>j��v]Bo��~�|�;<f
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[{"action":"install_file","dst":"/home/boneio/docker/nodered/caddy/init-certs.sh","expected_sha256":"93342a62f024235b2deefd2cd833ef72d7a9cf14a8ad0727ab0dc422e78e8388","group":"boneio","mode":493,"owner":"boneio","src":"docker/nodered/caddy/init-certs.sh","template_vars":{}}]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
�,�L�5�02i%�u��G�c:m �����CM 0�z���X>j��v]Bo��~�|�;<f
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"plans":{"1.3.0":"3199d74a6dda33162bbee4fc650a5a0d70d5372258f3305ad92501215e22a7fd","1.3.1":"580381a4f6f40fc1bd4e903e591ad0d5c1db27daaccafc6f79dabf8c3b84259a","1.3.2":"7a69ffaf0c41438be25a656dcdc87783daac0eae79218d023648ef9d708e373f","1.4.0":"41c3a16e7819857a4b826e944fcfb4f79c58e7192cb151b106a3acd7487d5771","1.4.3":"a8cfbabff09d21944a822c4a70f23a7ee14960c4054de151c9fbc7cdb29adff5","1.4.4":"
|
|
1
|
+
{"plans":{"1.3.0":"3199d74a6dda33162bbee4fc650a5a0d70d5372258f3305ad92501215e22a7fd","1.3.1":"580381a4f6f40fc1bd4e903e591ad0d5c1db27daaccafc6f79dabf8c3b84259a","1.3.2":"7a69ffaf0c41438be25a656dcdc87783daac0eae79218d023648ef9d708e373f","1.4.0":"41c3a16e7819857a4b826e944fcfb4f79c58e7192cb151b106a3acd7487d5771","1.4.3":"a8cfbabff09d21944a822c4a70f23a7ee14960c4054de151c9fbc7cdb29adff5","1.4.4":"8658ec11d4b2d32e2e5c6154a7b052f518aecdd4d610a99a05a462aded671079","1.5.0":"52d9d118da099abda0e0153cd16892e201681f6e4d3c6e5790284d1ac469a407","1.5.1":"d283cb8c01024338fb614ae2199744d883379f59579423e4eb9234f5c59ebdd8","1.5.10":"889e2f12614e6e67d342571c1c3bab8940659bfbbf43fa30a6847e73decb85d1","1.5.11":"4906e4de2b3a9c2f0b0181817c9dc168cb910ba6941691d4e86b8387802b624a","1.5.12":"c0a0dc085bb33d9718e869ed5effc2c1581deffd7ed0d5adc119b94312181625","1.5.13":"bfe58c8756f9b5f5e55d5acbb6f7cfc469d201004d312c14e022eb7c52369b7d","1.5.14":"a0464f11e05128cba8881e6295e591fce1ed1e8d43ab0e16710effb8e543d810","1.5.15":"0687a735cb4aaf8f8f74ad6e228ca1b14e045cba8821991c7d19fc9beaeac766","1.5.16":"3544ac754f39d56ecf2b06300b7cca1b6f8723f99885cd11bd690f1a704d3728","1.5.17":"cf1e9e0ff6812cb7092a82dd588392d625decbe3680fe003dfc554f9045809d3","1.5.18":"1fd873effa66b632217d674745722f712a48b36bb79957fefae722757a74bc30","1.5.2":"39fccb7582e13e7e3436861fde7b83ddb8057788cbde792f2f0cf7003f068850","1.5.3":"39fccb7582e13e7e3436861fde7b83ddb8057788cbde792f2f0cf7003f068850","1.5.4":"e86174ba5aff6f257f8a3f4721c7942885cd203469a9d8ddc15dbe6c704e0f45","1.5.5":"f93ed2d4342e447eb9900a0150331113918f2a8b3baeeb795c07231d80f0337c","1.5.6":"e3d90e6ceb20d760f1e9fa63224c5a070a16b3ca6e7dc4cc2c594138e929cce8","1.5.7":"a0464f11e05128cba8881e6295e591fce1ed1e8d43ab0e16710effb8e543d810","1.5.8":"f075b84fb04f4043658a28402d963494dd58481f164c0b371cec94322fe6d131","1.5.9":"ac170fc924019fc2acd69a90a82ba5c2552dce7a2c01a05e5407443e7a9e5af7","1.6.0":"c8286514d1a4f1805e727e13d3c350bb390378c6f31ad6920030412d61ec9b3f","1.6.1":"aa1d3934091853fc21208993930c1bf92e17136428d1d0baaefabfa65d13e7fa","1.6.10":"41c3a16e7819857a4b826e944fcfb4f79c58e7192cb151b106a3acd7487d5771","1.6.11":"d136203e08e3b052254403815d4ccedb555b0a297686fe97952d275eb1f322eb","1.6.12":"c328d4e36bd6277e01cef0140993e23970f4dff84425f3eba236cdd9a8954355","1.6.13":"6e4a259795749084d2d01f97750a57528662898edf14a3a990ccfaffd414ac44","1.6.14":"6e4a259795749084d2d01f97750a57528662898edf14a3a990ccfaffd414ac44","1.6.2":"6ef96b5e00a04a929d16f0e4a136bfcc5b8132a466d6907a99b2c8516a8952d5","1.6.3":"5c10db827bcb92b9322d4aa5751076b825da87c6d18d6953847ba72317cca862","1.6.4":"baf2bb1c2ec7c1bfccfc514ef1cef67907e056e4f7153bb5932ecb835c9cff78","1.6.5":"358dacbc8d16b1b665167de3bc1c42d101d82733502048f345184d1841ce03f2","1.6.6":"535bb041b99d5ac1bc9028ea88bc2fbf3dbadc80ea8dea236cc219123c194114","1.6.7":"d59af413e270e6f34b1b9a1c8c4acef35328f00e26fad447cfe214545af78d8f","1.6.8":"7175f827b99c602df80436db588c87277ce50f2734051a444163b048f5d0b23e","1.6.9":"732d5a9bcd2e496a260263a643c78a6346e9f3cef5b48fe59ac6b120bd03ba4e"},"release":"1.6.0.dev8"}
|
|
Binary file
|
boneio/migrations/runner.py
CHANGED
|
@@ -116,12 +116,15 @@ class MigrationInfo:
|
|
|
116
116
|
module_name: Full dotted module path.
|
|
117
117
|
description: Human-readable description.
|
|
118
118
|
requires_root: Whether ``boneio-migrate`` helper is needed.
|
|
119
|
+
superseded_by: A later migration that redoes everything this one does,
|
|
120
|
+
so a device applying both from scratch can skip this one.
|
|
119
121
|
"""
|
|
120
122
|
|
|
121
123
|
version: str
|
|
122
124
|
module_name: str
|
|
123
125
|
description: str
|
|
124
126
|
requires_root: bool = True
|
|
127
|
+
superseded_by: str | None = None
|
|
125
128
|
|
|
126
129
|
def version_tuple(self) -> tuple[int, ...]:
|
|
127
130
|
"""Return version as comparable integer tuple."""
|
|
@@ -576,6 +579,7 @@ class MigrationRunner:
|
|
|
576
579
|
version = getattr(mod, "VERSION", None)
|
|
577
580
|
description = getattr(mod, "DESCRIPTION", module_name)
|
|
578
581
|
requires_root = getattr(mod, "REQUIRES_ROOT", True)
|
|
582
|
+
superseded_by = getattr(mod, "SUPERSEDED_BY", None)
|
|
579
583
|
|
|
580
584
|
if version is None:
|
|
581
585
|
_LOGGER.warning("Migration module %s has no VERSION, skipping.", full_name)
|
|
@@ -587,6 +591,7 @@ class MigrationRunner:
|
|
|
587
591
|
module_name=full_name,
|
|
588
592
|
description=description,
|
|
589
593
|
requires_root=requires_root,
|
|
594
|
+
superseded_by=superseded_by,
|
|
590
595
|
)
|
|
591
596
|
)
|
|
592
597
|
except Exception as exc:
|
|
@@ -607,8 +612,49 @@ class MigrationRunner:
|
|
|
607
612
|
_LOGGER.debug("Applied migrations: %s", applied)
|
|
608
613
|
|
|
609
614
|
def _get_pending(self) -> list[MigrationInfo]:
|
|
610
|
-
"""Return migrations not yet applied.
|
|
611
|
-
|
|
615
|
+
"""Return migrations not yet applied, and not made pointless by a later one.
|
|
616
|
+
|
|
617
|
+
A file installed by one migration and replaced by a later one is
|
|
618
|
+
written twice on a device that applies both from scratch — three times
|
|
619
|
+
by the third revision, and so on. Each write is a signature check, a
|
|
620
|
+
digest check and a validator run through the privileged helper, which
|
|
621
|
+
on a controller is seconds, and each is another step that can fail on
|
|
622
|
+
the way to a result the next step throws away.
|
|
623
|
+
|
|
624
|
+
Only whole migrations are ever skipped, never individual actions. The
|
|
625
|
+
helper reads the plan from a signed file and is given nothing but a
|
|
626
|
+
version string; letting the application say which parts to run would
|
|
627
|
+
put it back in charge of what happens as root, which is the hole this
|
|
628
|
+
protocol exists to close. Choosing not to apply something can only ever
|
|
629
|
+
do less, so it is safe here.
|
|
630
|
+
|
|
631
|
+
A migration is skipped only when the one that supersedes it is itself
|
|
632
|
+
about to run or has already run — otherwise the work would be dropped
|
|
633
|
+
rather than deferred. ``test_migration_consistency`` checks that every
|
|
634
|
+
declared supersession really does cover everything the older migration
|
|
635
|
+
did, because getting that wrong loses a change silently.
|
|
636
|
+
|
|
637
|
+
Returns:
|
|
638
|
+
The migrations to apply, in version order.
|
|
639
|
+
"""
|
|
640
|
+
pending = [m for m in self._all_migrations if m.version not in self._applied]
|
|
641
|
+
known = {m.version for m in self._all_migrations}
|
|
642
|
+
pending_versions = {m.version for m in pending}
|
|
643
|
+
|
|
644
|
+
kept = []
|
|
645
|
+
for migration in pending:
|
|
646
|
+
successor = migration.superseded_by
|
|
647
|
+
if successor and successor in known and (
|
|
648
|
+
successor in pending_versions or successor in self._applied
|
|
649
|
+
):
|
|
650
|
+
_LOGGER.info(
|
|
651
|
+
"Skipping %s: %s does everything it does.",
|
|
652
|
+
migration.version,
|
|
653
|
+
successor,
|
|
654
|
+
)
|
|
655
|
+
continue
|
|
656
|
+
kept.append(migration)
|
|
657
|
+
return kept
|
|
612
658
|
|
|
613
659
|
def _apply_pending(
|
|
614
660
|
self,
|
|
@@ -31,6 +31,13 @@ VERSION = "1.6.13"
|
|
|
31
31
|
DESCRIPTION = "Allow an uploaded TLS certificate"
|
|
32
32
|
REQUIRES_ROOT = True
|
|
33
33
|
|
|
34
|
+
#: 1.6.14 installs the same file with a later revision of it. A device applying
|
|
35
|
+
#: both from scratch would write it twice, each write a signature check, a
|
|
36
|
+
#: digest check and a validator run through the privileged helper — so this one
|
|
37
|
+
#: is skipped when the other is going to run anyway. A test checks the claim:
|
|
38
|
+
#: everything this migration does has to be something 1.6.14 also does.
|
|
39
|
+
SUPERSEDED_BY = "1.6.14"
|
|
40
|
+
|
|
34
41
|
_BONEIO_HOME = "/home/boneio"
|
|
35
42
|
_BONEIO_USER = "boneio"
|
|
36
43
|
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"""Stop the device's own certificate expiring twice a day.
|
|
2
|
+
|
|
3
|
+
Caddy's internal issuer defaults to a twelve-hour leaf. For a public site
|
|
4
|
+
renewed automatically that is a virtue; for a certificate nobody trusts until
|
|
5
|
+
they decide to, it undoes the decision daily. Somebody who clicks through the
|
|
6
|
+
warning once, or adds an exception, or installs this device's authority on
|
|
7
|
+
their laptop, is back to a fresh unknown certificate by the evening.
|
|
8
|
+
|
|
9
|
+
Six months instead. The intermediate is extended to a year with it, because
|
|
10
|
+
Caddy refuses to start when a leaf would outlive the intermediate signing it —
|
|
11
|
+
which is the part that makes this two settings rather than one.
|
|
12
|
+
|
|
13
|
+
This is a change to the script the container runs at start, so it only takes
|
|
14
|
+
effect when Caddy is next restarted. Nothing here restarts it: the certificate
|
|
15
|
+
in use is valid, and interrupting the panel to replace a working certificate
|
|
16
|
+
with a longer-lived one is not a trade worth making unasked.
|
|
17
|
+
|
|
18
|
+
To retry on a device, delete ``/var/lib/boneio/migrations.d/1.6.14.applied``
|
|
19
|
+
and restart boneIO.
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
from __future__ import annotations
|
|
23
|
+
|
|
24
|
+
from boneio.migrations.actions import InstallFile, MigrationAction
|
|
25
|
+
|
|
26
|
+
VERSION = "1.6.14"
|
|
27
|
+
DESCRIPTION = "Issue the device certificate for six months, not twelve hours"
|
|
28
|
+
REQUIRES_ROOT = True
|
|
29
|
+
|
|
30
|
+
_BONEIO_HOME = "/home/boneio"
|
|
31
|
+
_BONEIO_USER = "boneio"
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def plan() -> list[MigrationAction]:
|
|
35
|
+
"""Return the ordered list of migration actions.
|
|
36
|
+
|
|
37
|
+
Returns:
|
|
38
|
+
List of :class:`MigrationAction` to apply in order.
|
|
39
|
+
"""
|
|
40
|
+
return [
|
|
41
|
+
InstallFile(
|
|
42
|
+
src="docker/nodered/caddy/init-certs.sh",
|
|
43
|
+
dst=f"{_BONEIO_HOME}/docker/nodered/caddy/init-certs.sh",
|
|
44
|
+
mode=0o755,
|
|
45
|
+
owner=_BONEIO_USER,
|
|
46
|
+
group=_BONEIO_USER,
|
|
47
|
+
),
|
|
48
|
+
]
|
boneio/version.py
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
# flake8: noqa
|
|
2
|
-
__version__ = "1.6.0.
|
|
2
|
+
__version__ = "1.6.0.dev8"
|
|
@@ -3,7 +3,7 @@ boneio/bonecli.py,sha256=_MbWYilR4-Er0xNTi453pAiVmJJpzbNPHg1nCOcTk-Q,13324
|
|
|
3
3
|
boneio/const.py,sha256=a26L-kGgXO4pAt9OrGfOedl-JGQW5540g0iZVpw6_b8,7700
|
|
4
4
|
boneio/exceptions.py,sha256=cBph-TsLF7FSz6p4wYeMs3pjVmVRaNQRJP82JgYYV-c,810
|
|
5
5
|
boneio/runner.py,sha256=rrU8J0UP6ZJo6kbvsHZR4KgS96vi70xq25KuJqSLKKg,22525
|
|
6
|
-
boneio/version.py,sha256=
|
|
6
|
+
boneio/version.py,sha256=fcUJuiOsj3XUT257O8bFKeh0lLIbmECdNx97RbxAyTg,42
|
|
7
7
|
boneio/boards/0.2/input.yaml,sha256=K5EcB44BZ8PxbPnH1izYwJ-ePo8gs4qZttMXhnMnfQ8,1259
|
|
8
8
|
boneio/boards/0.2/output_24_16.yaml,sha256=GQGM3gUK7UobdGL-Ejt9UKdCs1HLPgZ7kziVZ1tjQlA,1462
|
|
9
9
|
boneio/boards/0.2/output_32_10.yaml,sha256=169ubuzRqFLGiOr7zgB1xL1tKdQyOx2FJZvTCkxCA4U,1920
|
|
@@ -97,7 +97,7 @@ boneio/core/cloud/secrets.py,sha256=gCxw41K4yIyQANEtoiG3JjkY7S5fWbLENJGuneFls7E,
|
|
|
97
97
|
boneio/core/cloud/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
98
98
|
boneio/core/cloud/data/docker-compose-cloud.yaml,sha256=l3rReA8ZrC5rnPygov80SOitbCHJ5Tp9fn40qpAExPA,1196
|
|
99
99
|
boneio/core/cloud/data/docker-compose.yaml,sha256=8J9bEnkobuj3EE2uixMJUgG-YXmrK8tGzG2PlmLn6q8,1355
|
|
100
|
-
boneio/core/cloud/data/init-certs-cloud.sh,sha256=
|
|
100
|
+
boneio/core/cloud/data/init-certs-cloud.sh,sha256=U2YhOqkuHnyc8FzxMpnfL49RyQ_hU0EmjaFC79bly-g,4650
|
|
101
101
|
boneio/core/config/__init__.py,sha256=_c6SuenN1TD27lPkkQ_fWTKCFSoIJqBQPd4UM-9ZY3s,272
|
|
102
102
|
boneio/core/config/config_helper.py,sha256=r2XS4Chx4azRd53Unrk5_3tNviz8z1HJ_3HEECdsdOU,19745
|
|
103
103
|
boneio/core/config/input_bindings.py,sha256=ItwftM6Ju0gjAFdROHLmZQtmwtFHkd7pa2vz9zquF6M,7853
|
|
@@ -270,15 +270,15 @@ boneio/integration/interlock.py,sha256=P1-uPamm3yMRz7LuZrvV34lmj2xAUxMGHtzRp0ecv
|
|
|
270
270
|
boneio/integration/lox_template.py,sha256=Lich2C57w0CV-BDWlivtXsdd1irUltHD2ZfdD0PnLO4,13075
|
|
271
271
|
boneio/migrations/__init__.py,sha256=ymImsxVT2PF3lfiqqANJSBugMT8IW9gSSUqWcDDaYrk,349
|
|
272
272
|
boneio/migrations/actions.py,sha256=9MEpjgM5avnv-AP_YrCQWbcUEMwxBsgjeWCHtu_2E3w,16899
|
|
273
|
-
boneio/migrations/runner.py,sha256=
|
|
274
|
-
boneio/migrations/assets/MANIFEST.sha256,sha256=
|
|
273
|
+
boneio/migrations/runner.py,sha256=6hcpcH4OZ1SAagxtUQNeoyFwbB8jkLbpgNrDguiWtKQ,40945
|
|
274
|
+
boneio/migrations/assets/MANIFEST.sha256,sha256=yU7b4AM1XvtcKEltZ9V-AJs-CIX35s9i-aElE7NI5Gg,3780
|
|
275
275
|
boneio/migrations/assets/migrations-recovery.pem,sha256=loFxDho4uOp7pVWIOeTvi18Bp1ci2_QDkTutdkN0Sew,113
|
|
276
276
|
boneio/migrations/assets/migrations.pem,sha256=Fql8h17baOGWVblTtLqnc8waTleBBUPNpkaj4-g8DA4,113
|
|
277
277
|
boneio/migrations/assets/docker/daemon.json,sha256=8u0FxvWTShXxJXETm9wiWAT2e4yDVhzDmGj3siltJpc,96
|
|
278
278
|
boneio/migrations/assets/docker/nodered/docker-compose-cloud.yaml,sha256=-6GlvGpraqr_jM7Z9u4TUKFq0aXd3irzZsGYiBaY0mQ,955
|
|
279
279
|
boneio/migrations/assets/docker/nodered/docker-compose.yaml,sha256=zZDhvLZIhmkXnI56QKYmWSPg_qBFzHnVt1WeuzCRMbY,1114
|
|
280
280
|
boneio/migrations/assets/docker/nodered/caddy/502.html,sha256=It_n1V5e2F6g9BSbd3a3UEoSuRkFcBZXqIhArhIICHw,1134
|
|
281
|
-
boneio/migrations/assets/docker/nodered/caddy/init-certs.sh,sha256=
|
|
281
|
+
boneio/migrations/assets/docker/nodered/caddy/init-certs.sh,sha256=kzQqYvAkI1st7v0s2DPvctepzxSorQcnqw3EIueOg4g,4286
|
|
282
282
|
boneio/migrations/assets/docker/nodered/node-red/settings.js,sha256=v_AHU8cvsXYJpvezpY73i3s5TaEtGf1luHXyiJaV4rQ,4641
|
|
283
283
|
boneio/migrations/assets/helpers/boneio-containers,sha256=hP0w_dwJKOT4LENNQlVcyW2axW5g7Pt4NysWYYFlBsg,20997
|
|
284
284
|
boneio/migrations/assets/helpers/boneio-helpers-heal,sha256=3_DNAtqtLL1SWgU1-PNWK7dC5-c3skxp5a-phkFeZ-Q,7089
|
|
@@ -323,8 +323,8 @@ boneio/migrations/plans/1.4.0.json,sha256=QcOhbngZhXpLgm6UT8-095xY5xkssVGxBqOs10
|
|
|
323
323
|
boneio/migrations/plans/1.4.0.sig,sha256=4-qgEvgoWUbh5ZGEBAdlWupmeRubB0S2El8ZWvrttLM,64
|
|
324
324
|
boneio/migrations/plans/1.4.3.json,sha256=qM-6v_CdIZRKgixKcPI6fuFJYMQFTeFRyfvHzbKa3_U,736
|
|
325
325
|
boneio/migrations/plans/1.4.3.sig,sha256=-kq-hWYUzvF2j_NSiikNFIbZTS9XCvxpb6EbsCZF6pk,64
|
|
326
|
-
boneio/migrations/plans/1.4.4.json,sha256=
|
|
327
|
-
boneio/migrations/plans/1.4.4.sig,sha256=
|
|
326
|
+
boneio/migrations/plans/1.4.4.json,sha256=hljsEdSy0y4uXGFUp7BS9RiuzdTWEKmaBaRire1nEHk,894
|
|
327
|
+
boneio/migrations/plans/1.4.4.sig,sha256=wvmUjhDstULbK_BQT0cI-Q8KVX_tdByZ0L33Ictt7UA,64
|
|
328
328
|
boneio/migrations/plans/1.5.0.json,sha256=UtnRGNoJmr2g4BU80WiS4gFoH25NPG5XkChNGsRppAc,461
|
|
329
329
|
boneio/migrations/plans/1.5.0.sig,sha256=QIZXjlnP43UR2G5k08eyC02wrg2CAkNUg7QhS4NFTbw,64
|
|
330
330
|
boneio/migrations/plans/1.5.1.json,sha256=0oPLjAECQzj7YUriGZdE2IM3n1lXlCPk65I09cWevdg,80
|
|
@@ -373,8 +373,10 @@ boneio/migrations/plans/1.6.11.json,sha256=0TYgPgjjsFIlRAOBXUzO21VbCil2hv6XlS0nX
|
|
|
373
373
|
boneio/migrations/plans/1.6.11.sig,sha256=9sXzurZBVYwt-JzyoI5vlSuCB_ld7AR4JxQS8Azm8zg,64
|
|
374
374
|
boneio/migrations/plans/1.6.12.json,sha256=wyjU42vWJ34BzvAUCZPiOXD03_hEJfProjbN2aiVQ1U,241
|
|
375
375
|
boneio/migrations/plans/1.6.12.sig,sha256=rQo55VqYRhnMkpbA6AYPRC5mJfB7a9wkGv8YgPt192Y,64
|
|
376
|
-
boneio/migrations/plans/1.6.13.json,sha256=
|
|
377
|
-
boneio/migrations/plans/1.6.13.sig,sha256=
|
|
376
|
+
boneio/migrations/plans/1.6.13.json,sha256=bkoll5V0kITS0B-XdQpXUoZiiY7fFKOpkMz6_9QUrEQ,275
|
|
377
|
+
boneio/migrations/plans/1.6.13.sig,sha256=Y8o4kXpYMxCxb9X1rxfsEoRUyIPmlICHy7NXwJdVyiE,64
|
|
378
|
+
boneio/migrations/plans/1.6.14.json,sha256=bkoll5V0kITS0B-XdQpXUoZiiY7fFKOpkMz6_9QUrEQ,275
|
|
379
|
+
boneio/migrations/plans/1.6.14.sig,sha256=Y8o4kXpYMxCxb9X1rxfsEoRUyIPmlICHy7NXwJdVyiE,64
|
|
378
380
|
boneio/migrations/plans/1.6.2.json,sha256=bvlrXgCgSpKdFvDkoTa_zFuBMqRm1pB6mbLIUWqJUtU,63
|
|
379
381
|
boneio/migrations/plans/1.6.2.sig,sha256=9KnV4GixPAxKeoZMOgJzhzze3OTpY4F-cxihFNpHT10,64
|
|
380
382
|
boneio/migrations/plans/1.6.3.json,sha256=XBDbgnvLkrkyLUqldRB2uCXah8bRjWlThHunIxfMqGI,178
|
|
@@ -391,8 +393,8 @@ boneio/migrations/plans/1.6.8.json,sha256=cXX4J7mcYC34BDbbWIyHJ3zlDyc0BRpEQWOwSP
|
|
|
391
393
|
boneio/migrations/plans/1.6.8.sig,sha256=fQOS_Ly_amrM_ucOCkZdjX9jn0Pe7JBnbWqTmVs9SHw,64
|
|
392
394
|
boneio/migrations/plans/1.6.9.json,sha256=cy1am80uSWomAmOmQ8eKY0bp8871tI_lmsaxIL0Duk4,540
|
|
393
395
|
boneio/migrations/plans/1.6.9.sig,sha256=s6Xj7sFKeHfBb9f9oBnYeEFDBAxFHvDzqR8LbmqOqHU,64
|
|
394
|
-
boneio/migrations/plans/manifest.json,sha256=
|
|
395
|
-
boneio/migrations/plans/manifest.sig,sha256=
|
|
396
|
+
boneio/migrations/plans/manifest.json,sha256=BgDMxqVvijrMmQP1FnFtDXZuqULLRV-yAV9LHk9CsHk,3048
|
|
397
|
+
boneio/migrations/plans/manifest.sig,sha256=B8jktVhbNdcnY7i2mSJtRgPPS6WgUNX80nSjKbJsbBE,64
|
|
396
398
|
boneio/migrations/versions/__init__.py,sha256=JfouqluRirihGluvLOivkL7Sz7PF4lEyiCfMnOoMLwI,53
|
|
397
399
|
boneio/migrations/versions/v1_3_0_baseline.py,sha256=uM3Lg9NeiMssLZ43q0FecuASviZybdrn7kL5eA_D2UM,6648
|
|
398
400
|
boneio/migrations/versions/v1_3_1_fix_oled_boot.py,sha256=afKamxSo-zsYrKCHr8tXiPmQqaehioEwtg4JxRp7SEU,2505
|
|
@@ -423,7 +425,8 @@ boneio/migrations/versions/v1_6_0_nodered_admin_auth.py,sha256=RWZwKNDCzQSPV_syE
|
|
|
423
425
|
boneio/migrations/versions/v1_6_10_narrow_sudo_rules.py,sha256=0xnfbu0Iu6Gzmkjrl4TyYhZliAEDHDSawcluWi5zIjM,1875
|
|
424
426
|
boneio/migrations/versions/v1_6_11_drop_docker_group.py,sha256=GmCN1xu9elFV1sDEGaelO75JZaPCMekQbBMcY7RDgGc,1811
|
|
425
427
|
boneio/migrations/versions/v1_6_12_console_shows_ip.py,sha256=HdRoZC62b1FD_Q8n8VZeIO5f7TaZHsi72mz09QAHG2U,2351
|
|
426
|
-
boneio/migrations/versions/v1_6_13_custom_certificate.py,sha256=
|
|
428
|
+
boneio/migrations/versions/v1_6_13_custom_certificate.py,sha256=Pc4n-Wlj2v5fGgCSZMJwfRxu-dHkKYeKxmpU9qUQSP0,2341
|
|
429
|
+
boneio/migrations/versions/v1_6_14_certificate_lifetime.py,sha256=dQAWLgDziORhzP6Mu32ysfE4rMynYmbcAFxY6Zw8jhk,1768
|
|
427
430
|
boneio/migrations/versions/v1_6_1_mosquitto_passwd_perms.py,sha256=-7dTKHPB7X5rwYbuzPTWe7Fg082uLczPIeWj1dESTLs,1635
|
|
428
431
|
boneio/migrations/versions/v1_6_2_drop_build_sudo_rule.py,sha256=oOyBBsP1nv-siAVixRQcjPko86WZPW_Tv9rD6ywejU4,1733
|
|
429
432
|
boneio/migrations/versions/v1_6_3_firewall_rule_gaps.py,sha256=3GdU_wevVUJv6fxVTRd87GoMr_sm84naWWDKWOJNVlQ,1435
|
|
@@ -687,9 +690,9 @@ boneio/webui/schema/virtual_energy_sensor.schema.json,sha256=BN6Egh-CAnXSa80bQ6Y
|
|
|
687
690
|
boneio/webui/schema/web.schema.json,sha256=Wu_Ouv5R8cs1Sc5kN8ggg1L48yFMoo5DrHbd98gLM-M,4980
|
|
688
691
|
boneio/webui/services/__init__.py,sha256=l_L3YUPhc0ZbrWqKH1RurC7UQ4q0k-5ABGTwOSS-YFQ,282
|
|
689
692
|
boneio/webui/services/logs.py,sha256=rKx-7jbNXNuQpuqJHtIHBCXZ3ELguDJL82RySAUT38Y,11980
|
|
690
|
-
boneio-1.6.0.
|
|
691
|
-
boneio-1.6.0.
|
|
692
|
-
boneio-1.6.0.
|
|
693
|
-
boneio-1.6.0.
|
|
694
|
-
boneio-1.6.0.
|
|
695
|
-
boneio-1.6.0.
|
|
693
|
+
boneio-1.6.0.dev8.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
694
|
+
boneio-1.6.0.dev8.dist-info/METADATA,sha256=EhEEixdQHJu_ZPNgdIOo1Ex4cX07b_fZW-4MWPk8TBQ,1965
|
|
695
|
+
boneio-1.6.0.dev8.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
|
|
696
|
+
boneio-1.6.0.dev8.dist-info/entry_points.txt,sha256=JX7gluDIkQ6MBlzzxGHMItnBjciiJ73tsXwYcazMW_U,47
|
|
697
|
+
boneio-1.6.0.dev8.dist-info/top_level.txt,sha256=ag9S5n1_KXZfyk9tN8R0YUDYbdA--e5a2w2FOD_yMdg,7
|
|
698
|
+
boneio-1.6.0.dev8.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|