Cloudron makes it easy to run web apps like WordPress, Nextcloud, GitLab on your server. Find out more or install now.


Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Bookmarks
  • Search
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

Cloudron Forum

Offical apps | Community apps | Demo | Docs | Install
  1. Cloudron Forum
  2. Grist
  3. Grist Full Edition broken since 1.7.16+ — Possible fix (GRIST_SERVER_EDITION)

Grist Full Edition broken since 1.7.16+ — Possible fix (GRIST_SERVER_EDITION)

Scheduled Pinned Locked Moved Grist
5 Posts 2 Posters 36 Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • C Offline
    C Offline
    Chrisca
    wrote last edited by
    #1

    Hi everyone.

    It's my first message here so i hope it will arrive in the good topic to the right person.
    Grist Full Edition is broken since 1.7.16+ and i may have a Possible fix.

    Following up on the "Switch to Full Grist" issue reported earlier here (https://forum.cloudron.io/topic/14941/grist-is-now-available). After some debugging, I believe the root cause is that the Grist packaging is missing the GRIST_SERVER_EDITION=full environment variable.

    This variable was introduced in Grist 1.7.16+ (PR #2450) and is required to activate Full Edition at runtime. Without it, Grist defaults to Community Edition (deploymentType=core) even when a valid GRIST_ACTIVATION key is provided.

    The GRIST_ACTIVATION JWT only validates features (seats, read-only flag, expiration) — it does not switch the edition by itself.

    Proposed fix
    Adding this to the packaging should resolve the issue:
    export GRIST_SERVER_EDITION=full

    References
    PR #2450: https://github.com/gristlabs/grist-core/issues/2450
    Grist README (environment variables): https://github.com/gristlabs/grist-core#environment-variables
    Hope this helps.

    Best

    Chris

    1 Reply Last reply
    1
    • jamesJ Online
      jamesJ Online
      james
      Staff
      wrote last edited by james
      #2

      Hello @chrisca
      This issue is known to us and we did not yet get any feedback from the upstream.
      See: https://forum.cloudron.io/post/126499
      I will look into it again if something has changed.

      1 Reply Last reply
      0
      • C Offline
        C Offline
        Chrisca
        wrote last edited by
        #3

        Hi @james

        Thanks for the detailed report. I ran into the same issue and after digging through the source code, I found a way to get Full Edition working. Three things are needed together:

        GRIST_SERVER_EDITION=full in the container env (this is the missing piece, introduced in Grist 1.7.16 via PR #2450 — different from GRIST_EDITION). Flips deploymentType to enterprise.
        GRIST_ACTIVATION with the JWT from getgrist.com.
        The installationId in SQLite (/persist/home.db, table kvs, key installationId) has to match the one embedded in the JWT. If the DB was recreated or the JWT issued for a different install, they won't match and activation silently fails — instance stays read-only with no error message. Once I injected the matching ID, everything unlocked.
        Validated on gristlabs/grist official image, SQLite backend. Full Edition active, admin panel visible, documents editable.

        For the Cloudron packaging, I'd guess just adding GRIST_SERVER_EDITION=full to the start script fixes step 1 natively.

        References:

        PR #2450: https://github.com/gristlabs/grist-core/issues/2450
        Happy to test a patched package if one comes together.

        Chris

        jamesJ 1 Reply Last reply
        1
        • C Chrisca

          Hi @james

          Thanks for the detailed report. I ran into the same issue and after digging through the source code, I found a way to get Full Edition working. Three things are needed together:

          GRIST_SERVER_EDITION=full in the container env (this is the missing piece, introduced in Grist 1.7.16 via PR #2450 — different from GRIST_EDITION). Flips deploymentType to enterprise.
          GRIST_ACTIVATION with the JWT from getgrist.com.
          The installationId in SQLite (/persist/home.db, table kvs, key installationId) has to match the one embedded in the JWT. If the DB was recreated or the JWT issued for a different install, they won't match and activation silently fails — instance stays read-only with no error message. Once I injected the matching ID, everything unlocked.
          Validated on gristlabs/grist official image, SQLite backend. Full Edition active, admin panel visible, documents editable.

          For the Cloudron packaging, I'd guess just adding GRIST_SERVER_EDITION=full to the start script fixes step 1 natively.

          References:

          PR #2450: https://github.com/gristlabs/grist-core/issues/2450
          Happy to test a patched package if one comes together.

          Chris

          jamesJ Online
          jamesJ Online
          james
          Staff
          wrote last edited by
          #4

          Hello @chrisca

          @Chrisca said:

          The installationId in SQLite (/persist/home.db, table kvs, key installationId) has to match the one embedded in the JWT. If the DB was recreated or the JWT issued for a different install, they won't match and activation silently fails

          But is this not the core issue?
          Since every grist installation on Cloudron starts as free changing the edition from free to full would always entail 'injected the matching ID' however this should be done.

          @Chrisca said:

          For the Cloudron packaging, I'd guess just adding GRIST_SERVER_EDITION=full to the start script fixes step 1 natively.

          This would cause every Grist installation to be the full edition by default and thus requiring a paid licence after the 30-day trial period, right?
          Just deciding for everyone that the edition is always full should not be our call to make, it is the users decision to switch between free and full.

          Also, there already is the /app/data/env.sh where you could add:

          export GRIST_SERVER_EDITION=full
          

          @chrisca can you explain the 'injected the matching ID' part?

          1 Reply Last reply
          1
          • C Offline
            C Offline
            Chrisca
            wrote last edited by
            #5

            Hi @james,

            You're right on both points.

            On the installationId — that was specific to my migration case, not relevant to the core bug. Scratch that.

            On forcing Full Edition by default — agreed, that's the user's call.

            One thing I want to add: I tested the same approaches as you did in post #15 (GRIST_EDITION=full, yarn run set-full-edition, the admin UI toggle) — none of them worked. The variable introduced in PR #2450 is actually GRIST_SERVER_EDITION=full, which is a different variable from GRIST_EDITION. It controls deploymentType at runtime via a separate code path. GRIST_EDITION=full had no effect on my side either.

            For anyone hitting this on Cloudron today, the workaround to test would be:

            Request a free activation key at getgrist.com (free for orgs under $1M revenue)
            In the Cloudron app config, add these env vars:
            GRIST_SERVER_EDITION=full
            GRIST_ACTIVATION=<your-key>
            Restart the app
            I haven't been able to test this on the Cloudron package itself — I had already migrated to the official gristlabs/grist image when I found GRIST_SERVER_EDITION, so my validation is on that image, not on Cloudron. If someone still on the Cloudron package could test adding GRIST_SERVER_EDITION=full to env.sh, that would confirm whether it's the fix.

            The Switch to Full Grist button in the admin UI likely sets GRIST_EDITION instead of GRIST_SERVER_EDITION, which would explain why it doesn't work.

            Chris

            1 Reply Last reply
            0

            Hello! It looks like you're interested in this conversation, but you don't have an account yet.

            Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

            With your input, this post could be even better 💗

            Register Login
            Reply
            • Reply as topic
            Log in to reply
            • Oldest to Newest
            • Newest to Oldest
            • Most Votes


            • Login

            • Don't have an account? Register

            • Login or register to search.
            • First post
              Last post
            0
            • Categories
            • Recent
            • Tags
            • Popular
            • Bookmarks
            • Search