Skip to content

Commit f6a65e0

Browse files
committed
merge: Drive publishing guidance
2 parents 5171c09 + 2ea7c93 commit f6a65e0

1 file changed

Lines changed: 35 additions & 14 deletions

File tree

docs/guides/google-drive-sync.md

Lines changed: 35 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,17 @@ before upload with the passphrase you choose.
99
The passphrase and desktop refresh token are kept in the operating system's
1010
secure storage. Google never receives the plain server configuration.
1111

12-
!!! warning "Drive sync in the official builds is limited"
12+
!!! warning "A project in testing only admits its own testers"
1313

14-
A Google Cloud project stays in **testing** until Google verifies it, and a
15-
project in testing only admits accounts its owner has added as testers.
16-
The published Admincraft builds carry this project's client IDs, so signing
17-
in with any other account is refused with `Error 403: access_denied`, however
18-
correctly everything else is set up.
14+
A Google Cloud project starts in **testing**, which admits only the accounts
15+
its owner listed as testers. Everyone else is refused with
16+
`Error 403: access_denied`, however correctly the rest is set up. Publishing
17+
the project lifts that, and for this scope it needs no review: see
18+
[publish the project](#4-publish-the-project).
1919

20-
Two ways round it: build Admincraft with [your own client IDs](#google-cloud-setup),
21-
which takes about ten minutes and gives you a project you control, or use
22-
**Backup file**, which needs no account at all and carries the same
23-
encrypted data between devices.
20+
Note what the refusal applies to. Signing in still succeeds, because
21+
identifying you and granting access to Drive are separate steps and only the
22+
second is gated.
2423

2524
## Google Cloud setup
2625

@@ -45,8 +44,8 @@ secure storage. Google never receives the plain server configuration.
4544
and gives Admincraft access only to its hidden configuration folder—not to
4645
the user's other Drive files.
4746
4. During development, keep the app in **Testing** and add each Google account
48-
under **Test users**. Testing grants expire after seven days. Publish the app
49-
when it is ready for general use.
47+
under **Test users**. Testing grants expire after seven days, so a tester is
48+
asked to authorise again every week.
5049

5150
### 3. Create OAuth clients
5251

@@ -118,6 +117,24 @@ Desktop applications are public OAuth clients, so an embedded client secret
118117
cannot be treated as confidential. Keep it out of the repository anyway and
119118
inject it while building.
120119

120+
### 4. Publish the project
121+
122+
Open **Google Auth Platform → Audience** and select **Publish app**. Any Google
123+
account can then sign in, the test-user list stops mattering, and grants no
124+
longer expire every seven days.
125+
126+
There is no review to wait for and nothing to pay. Google only requires its
127+
verification process for [sensitive and restricted scopes](https://developers.google.com/workspace/drive/api/guides/api-specific-auth),
128+
and `drive.appdata` is neither: it is classified as non-sensitive, because it
129+
reaches only the app's own hidden folder and never the user's files. An app
130+
requesting nothing beyond that publishes immediately, without the unverified-app
131+
warning or the hundred-user cap those scopes carry.
132+
133+
Two things would change that, and both are choices rather than accidents:
134+
adding a wider Drive scope later moves the project into the sensitive tier and
135+
its review, and showing a name and logo on the consent screen instead of the
136+
project's own details needs the lighter brand verification.
137+
121138
## Build with the client IDs
122139

123140
Web development:
@@ -185,11 +202,15 @@ for explicit recovery.
185202
| --- | --- |
186203
| This build is not registered in its Google Cloud project | No Android OAuth client matches this package name and signing certificate. Register the fingerprint of the build you are running, as above. |
187204
| Setup required | The build carries no client IDs. They are compiled in, so a build made without them cannot sign in at all; check the repository secrets and rebuild. |
205+
| The project is still in testing | Publish it, or add the account under **Test users**. |
188206
| Sign-in was cancelled | The account chooser was dismissed. |
189207

190208
Two things that look like app faults and are not:
191209

192-
- The account must be listed under **Test users** while the Google Auth
193-
Platform app is in testing. Any other account is refused.
210+
- Signing in and reaching Drive are separate steps. Admincraft asks who you are
211+
when it starts, which any account may answer, and asks for the Drive scope
212+
only when you sign in from **Data & Sync**. A testing project refuses the
213+
second while allowing the first, which looks like an account that signs in
214+
and then cannot sync.
194215
- The Drive API must be enabled in the same project the OAuth clients belong
195216
to. Sign-in can succeed while every sync then fails.

0 commit comments

Comments
 (0)