The web/ dashboard used to ride along inside FTStore Manager as a second tab, hidden behind a developer-mode switch. Hiding was the wrong tool: the Manager is what a normal user installs to get FTStore onto a phone, and the worker controls were one gesture away from it. FTStore Admin (admin/, app.ftstore.admin) is now its own app: - admin/FTStoreAdmin/Console/* is the moved console, unchanged in behaviour — ManagerConfig became AdminConfig, ManagerHomeView.brand became AdminTheme.brand. - It links no Swift package at all, only system frameworks. The three helpers it borrowed from NimbleKit and the engine (User-Agent, share sheet, image resize, AnyCodable) are inlined in Support/, so the IPA stays what it claims to be: a login form and nothing else. - Its Keychain service is app.ftstore.admin and its User-Agent is FTStore-Admin/…, deliberately outside web/'s APP_UA gate — the console only calls session-authenticated routes. - The optional biometric gate now re-arms whenever the app leaves the screen, not just at launch. - Sideloaded on purpose: admin-release.yml cuts a draft release from an admin-v* tag and admin-build.yml compiles every push, but there is no AltStore source and no self-update channel. The Manager loses the console, the developer-mode gate and therefore the tab bar — FTStoreManagerApp shows ManagerHomeView directly. Its camera and Face ID usage strings go with it, and ManagerLegacyConsole.purge() wipes the session an updated install would otherwise still be holding.
43 lines
700 B
JSON
43 lines
700 B
JSON
{
|
|
"fill" : {
|
|
"linear-gradient" : [
|
|
"srgb:0.16863,0.16863,0.17647,1.00000",
|
|
"srgb:0.00000,0.00000,0.00000,1.00000"
|
|
],
|
|
"orientation" : {
|
|
"start" : {
|
|
"x" : 0.5,
|
|
"y" : 0
|
|
},
|
|
"stop" : {
|
|
"x" : 0.5,
|
|
"y" : 1.0
|
|
}
|
|
}
|
|
},
|
|
"groups" : [
|
|
{
|
|
"layers" : [
|
|
{
|
|
"image-name" : "rack.png",
|
|
"name" : "rack"
|
|
}
|
|
],
|
|
"shadow" : {
|
|
"kind" : "neutral",
|
|
"opacity" : 0.5
|
|
},
|
|
"translucency" : {
|
|
"enabled" : true,
|
|
"value" : 0.5
|
|
}
|
|
}
|
|
],
|
|
"supported-platforms" : {
|
|
"circles" : [
|
|
"watchOS"
|
|
],
|
|
"squares" : "shared"
|
|
}
|
|
}
|