← Commit history

Publish 0.8.3

John Lauer ·14436a402a ·3mo ago ·parent 899f501
3 files changed +9−3
bin/adom-google+7−1
@@ -951,6 +951,12 @@ def cmd_auth(a):     # it locally with the org's own secret. (None/True → broker mode: gateway exchanges.)     want_exchange = pr.get("broker") is not False     auth_link = AUTH_URL + "?" + urllib.parse.urlencode(params)+    if getattr(a, "url_file", None):+        # Clean machine-readable copy of the consent URL (one bare line). Tools that open the+        # browser for the user should read THIS instead of scraping stdout — quote/JSON wrappers+        # in the human output have corrupted scraped URLs before (trailing "}' broke the state).+        with open(a.url_file, "w") as f:+            f.write(auth_link + "\n")     print(f"OAuth Gateway flow — {mode.upper()} access"           + ("  (full Workspace: Gmail/Contacts/Drive/Sheets/Docs/Slides/Calendar/Tasks/Chat + delete)"              if mode == "full" else "  (safe: only files this app makes; no 'delete all')") + ".\n")@@ -1299,7 +1305,7 @@ def main():     p = argparse.ArgumentParser(add_help=False)     sub = p.add_subparsers(dest="cmd") -    s = sub.add_parser("auth"); s.add_argument("--manual", action="store_true"); s.add_argument("--safe", action="store_true", help="advanced: request the NARROW create-only scope set (no delete-all); default is FULL"); s.add_argument("--full", action="store_true", help="Connector: request the FULL set incl. Gmail-read + all Drive (works for whitelisted testers now, everyone once CASA clears). No-op for the work client (already full)."); s.set_defaults(fn=cmd_auth)+    s = sub.add_parser("auth"); s.add_argument("--manual", action="store_true"); s.add_argument("--safe", action="store_true", help="advanced: request the NARROW create-only scope set (no delete-all); default is FULL"); s.add_argument("--full", action="store_true", help="Connector: request the FULL set incl. Gmail-read + all Drive (works for whitelisted testers now, everyone once CASA clears). No-op for the work client (already full)."); s.add_argument("--url-file", dest="url_file", help="also write the consent URL to this file (one clean line, for tooling)"); s.set_defaults(fn=cmd_auth)     s = sub.add_parser("auth-code"); s.add_argument("code"); s.set_defaults(fn=cmd_auth_code)     s = sub.add_parser("init"); s.add_argument("client_id"); s.add_argument("client_secret"); s.set_defaults(fn=cmd_init)     pv = sub.add_parser("provider"); pvs = pv.add_subparsers(dest="sub")
package.json+1−1
@@ -1,6 +1,6 @@ {   "slug": "adom-google",-  "version": "0.8.2",+  "version": "0.8.3",   "type": "app",   "license": "MIT",   "description": "Drive your whole Google Workspace from the terminal — Gmail, Contacts, Drive, Sheets, Docs, Slides, Calendar, Tasks, Google Chat, plus a generic `api` passthrough to hit ANY Google API. Connect a personal @gmail (or another org's Google account) with ZERO setup via Adom's hosted Connector (`adom-google connect-personal`), or bring your own token-broker gateway (`provider set`) — Adom staff use the private adom-google-adom provider. One-click OAuth, no client secret on your machine.",
page.json+1−1
@@ -4,7 +4,7 @@   "slug": "adom-google",   "title": "Adom Google",   "brief": "Drive your whole Google Workspace from the terminal — Gmail, Drive, Sheets, Docs, Slides, Calendar, Tasks, Chat + any Google API.",-  "version": "0.8.2",+  "version": "0.8.3",   "visibility": "public",   "install": {     "binary_name": "adom-google"