Skip to content

Commit ef76f78

Browse files
committed
more updates regarding nuking
1 parent 20e24e3 commit ef76f78

File tree

4 files changed

+67
-4
lines changed

4 files changed

+67
-4
lines changed

docs/browser/automatic.md

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,64 @@ The `alive` branch you need is created automatically when you run the `Build Loo
6565
* You can delete every branch that starts with the name `alive`
6666
* Leave the other branches alone unless a mentor directs you to take action
6767

68+
## Automatic Certificates
69+
70+
Coming soon with `Loop 3.6.0`.
71+
72+
Already here with `LoopFollow 2.3.0` and some other Open-Source apps.
73+
74+
### Requirements
75+
76+
You must have the `ENABLE_NUKE_CERTS` variable set to `true` for your *GitHub* organization, or when using a personal account to build, add it to each repository.
77+
78+
* Refer to [Add Variable](prepare-fork.md#add-variable){: target="_blank" }
79+
80+
### Certificates and `Match-Secrets`
81+
82+
The Create Certificates action does the following:
83+
84+
* Reads existing signing credentials from your `Match-Secrets` private respository and confirms if they are valid
85+
* OR
86+
* Uses your `Distribution` Certificate from *Apple* or creates a new one if one does not exist
87+
* Securely stores, in your `Match-Secrets` private repository, signing credentials (like certificates and provisioning profiles from *Apple*) used for code signing for each Identifier in your app when you build
88+
89+
### Annual Renewal
90+
91+
This happens once a year after *Apple* automatically expires your `Distribution` Certificate.
92+
93+
* When the *Apple* `Distribution` certificate expires, the saved credentials in your `Match-Secrets` private repository are invalid and need to be removed (<code>nuke</code>)
94+
* You need a new `Distribution` Certificate at *Apple*
95+
* You need to create new signing credentials for `Match-Secrets`
96+
97+
For the `Loop` app, up through version 3.4.4, you need to do this process manually.
98+
99+
### Automatic Certificate Renewal
100+
101+
Some Open-Source apps, in particular `Trio` and `LoopFollow 2.3.0` already have this capability.
102+
103+
* If your signing credentials for the app being built are invalid and `ENABLE_NUKE_CERTS` is `true`, then signing credentials will be cleared from your `Match-Secrets` repository, a new `Distribution` certificate will be created at *Apple* and signing credentials for the current app will be generated and stored in `Match-Secrets`.
104+
105+
* Next app you build will need certificates created because all signing credentials were cleared out of your `Match-Secrets` repository
106+
* If that app is configured for automatic certificate renewal, you only need to run the `Build Action`; it detects no signing credentials are available and creates them
107+
* If that app is not configured for automatic certificate renewal, you must first run the action `Create Certificates` and then `Build`
108+
109+
### Open-Source App Schedule
110+
111+
Each Open-Source App has a schedule for when the automatic build happens. This determines when the automatic check for certificate status happens.
112+
113+
The times are shifted to make sure only one Open-Source app performs a `nuke` process at one time. This only happens once a year, but we wanted to be sure there are no conflicts. Even if an app doesn't have automatic certificates implemented yet, they are added to the table as suggested values to use when this capability gets added. All times are UTC. If other apps decide to add this feature, please make a pull request to LoopDocs so we can add those times to the deconfliction table.
114+
115+
| Open-Source App | AutoCerts? | Wed Time | 1st of Month Time |
116+
|:--|:-:|--:|--:|
117+
| <span translate="no">Loop</span> | `dev` only | 09:00 | 07:00 |
118+
| <span translate="no">LoopCaregiver</span> | n | 13:00 | 11:00 |
119+
| <span translate="no">LoopFollow</span> | y | 12:00 | 10:00 |
120+
| <span translate="no">LoopFollow_Second</span> | y | 12:20 | 10:20 |
121+
| <span translate="no">LoopFollow_Third</span> | y | 12:40 | 10:40 |
122+
| <span translate="no">Trio</span> | y | 08:00 | 06:00 |
123+
| <span translate="no">xDrip4iOS</span> | n | 16:00 | 14:00 |
124+
125+
68126
## Modify Automatic Building
69127

70128
For someone using [development code](build-dev-browser.md) for their own use, they could decide to choose when to update their `fork` to the most recent commit. They can still have the advantage of automatic building without automatic updates; in other words, they want a new build added to TestFlight every month. There may be other configurations someone would choose. These options are available starting with Loop 3.3.0 (`dev` branch) and later.

docs/browser/other-apps.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ You will return to this page after reviewing (but not doing) this step [Configur
5959
* Do you have more than one Looper, so you are using LoopFollow_Second or LoopFollow_Third?
6060
* The 3 LoopFollow repositories enable you to customize the name shown on your phone
6161

62-
In your *GitHub* repository, find the file named: `LoopFollowDisplayNameConfig.xcconfig`
62+
After you `fork` your *LoopFollow* repository, find the file named: `LoopFollowDisplayNameConfig.xcconfig`
6363

6464
* Open it in your browser
6565
* Follow the directions to change `display_name`
@@ -79,7 +79,7 @@ The two repositories below are only if you need to follow a second or third loop
7979

8080
* All `repositories` in your *GitHub* organization use the organization <code>Secrets and Variables</code>
8181
* If you have not already completed [Add <code>Secrets</code> to your *GitHub* Organization](#add-secrets-to-your-github-organization), do it now
82-
* Skip ahead to [Validate <code>Secrets</code>](#validate-secrets)
82+
* Skip ahead to [Add Identifiers](#add-identifiers)
8383

8484
### Using a Personal *GitHub* Account
8585

@@ -112,10 +112,10 @@ Open the text file in which you maintain a copy of your 6 <code>Secrets</code> s
112112
![dialog for entering a new secret](img/repeat-secret-dialog.png){width="500"}
113113
{align="center"}
114114

115-
Once all six <code>Secrets</code> are added, proceed to the first Action to validate your secrets.
116-
117115
Be sure to [Add Variable](prepare-fork.md#add-variable){: target="_blank" } to the repository as well as `Secrets` to enable automatic certificate creation.
118116

117+
Once the <code>Secrets</code> and `Variable` are added, proceed to the first Action to validate your secrets.
118+
119119
## Validate <code>Secrets</code>
120120

121121
The first action step is to Validate <code>Secrets</code>. Near the top middle of your Repository fork, click on the `Actions` tab.
@@ -151,6 +151,8 @@ The `Validate Secrets` &nbsp;<span class=notranslate>Action</span>&nbsp; should
151151

152152
Near the top middle of your Repository fork, click on the "Actions" tab.
153153

154+
* If this is the first `Action` you run with this repository you'll be informed that `Workflows aren't being run on this forked repository`
155+
* Tap on the green button that says: `I understand my workflows, go ahead and enable them`
154156
* The graphic below is an example from Loop, your screen will show your app and associated repository
155157

156158
Refer to the graphic below for the numbered steps:

docs/faqs/glossary.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,8 @@ When Google Translate is selected:
164164

165165
**<span translate="no">Nightscout</span>**&nbsp; (Nightscout): a personal website used to view your glucose and diabetes management data, `Loop` can upload to `Nightscout`
166166

167+
**<span translate="no">nuke</span>**&nbsp; (nuke): clear signing credentials from your Match-Secrets repository
168+
167169
**<span translate="no">Onboarding</span>**&nbsp; (Onboarding): familiarize new, and existing, Loop users with settings in Loop 3 and ensure the Therapy Settings are all entered and are within safety guardrails
168170

169171
**<span translate="no">Omnipod</span>**&nbsp; (Omnipod): Insulet tubeless insulin pump; Loop supports Eros (with RileyLink) and DASH. Eros is also known as Classic, UST400, and System.

includes/tooltip-list.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@
7575
*[MPC]: model predictive control; the type of control algorithm used by Loop
7676
*[NFC]: Near-Field Communication is used for scanning devices such as Libre sensors
7777
*[Nightscout]: a personal website used to view your glucose and diabetes management data, `Loop` can upload to `Nightscout`
78+
*[nuke]: clear signing credentials from your Match-Secrets repository
7879
*[Onboarding]: familiarize new, and existing, Loop users with settings in Loop 3 and ensure the Therapy Settings are all entered and are within safety guardrails
7980
*[Omnipod]: Insulet tubeless insulin pump; Loop supports Eros (with RileyLink) and DASH. Eros is also known as Classic, UST400, and System.
8081
*[OrangeLink]: radio-frequency device Loop uses to control Eros pods (aka. Gen 3) and older Medtronic pumps

0 commit comments

Comments
 (0)