Skip to content

Burr -- Google Sheets Persister #213

Open

Description

@elijahbenizzy

Is your feature request related to a problem? Please describe.
Heh, this is actually just a really cool idea. And, why not? Would make it super easy to debug, and google sheets is basically an extremely powerful (if not limited in scalability) database.

Describe the solution you'd like
Build a persister that saves to/loads from google sheets.

  • Determine data models -- partition key = one sheet? App = one tab? All in a drive?
  • Determine parameters for data model
  • Figure out best way to wire through secrets (ensuring that we don't accidentally track it...)
  • Test
  • Add CSV/Excel as well, based on this

See https://github.com/DAGWorks-Inc/burr/blob/26cfcd272a26c58e88c6ec84b18682b8ad87a9bd/burr/integrations/persisters/b_redis.py#L19.

for a sample working persister

Describe alternatives you've considered
Not doing this for fear that someone will use it in prod (or maybe they should...).

Activity

  1. cmm25 commented on Sep 24, 2024

    @cmm25

    I am requesting more information as I am interested in this issue

  2. skrawcz commented on Sep 30, 2024

    @skrawcz
    Contributor

    @cmm25 sorry for the tardy response. What questions do you have here?

  3. cmm25 commented on Oct 1, 2024

    @cmm25

    Seeing this as a good first issue I am interested in handling this but I cannot quite understand the needed requirements.

  4. skrawcz commented on Oct 1, 2024

    @skrawcz
    Contributor

    @cmm25 sure let me try to unpack it.

    1. The high level idea is that we could use google sheets as a database for persistence
    2. e.g. use their python API to read and write data (see their quickstart)

    Things to implement:

    1. A GoogleSheetsPersister (e.g. here's the postgres one for example)
    2. The persister should implement the required methods and then subsequently use the python google sheets API to read/write appropriately.
    3. Then an example application that uses it and exercises the functionality.

    How I would get started:

    1. Have setup google credentials and are able to run https://developers.google.com/sheets/api/quickstart/python
    2. Have forked the burr repository
    3. Added the google python client as an optional dependency to the project
    4. created the new persister class
    5. design the "data model" for the google sheet. It might be simplest to mirror the table structure from the postgresql persister?
    6. check in with us for feedback / thoughts.

    Does that help?

  5. goutamk09 commented on Mar 1, 2026

    @goutamk09
    Contributor

    @skrawcz I'd be interested in working on this.

    Proposed plan:

    • Mirror the existing Postgres persister structure first (same logical schema).
    • Implement a GoogleSheetsPersister using the Google Sheets Python API.
    • Add the Google client as an optional dependency (extras).
    • Add unit tests (mocking the Sheets API) plus a minimal example app.

    Before starting implementation, I’d like to confirm the data model direction:

    • Is mirroring the Postgres schema the preferred starting point?
    • For sheet layout, my initial proposal is:
      • one spreadsheet per deployment
      • a states tab keyed by (app_id, partition_key) storing serialized JSON + timestamps
      • optionally an events tab if needed for parity

    Happy to adjust the layout if there’s a preferred structure before building too far.

  6. elijahbenizzy commented on Mar 5, 2026

    @elijahbenizzy
    ContributorAuthor

    @goutamk09 This seems reasonable -- want to ipen up a PR and we can go from there?

  7. goutamk09 commented on Mar 8, 2026

    @goutamk09
    Contributor

    @elijahbenizzy Thanks! I've opened PR #670 for the initial Google Sheets persister skeleton so we can iterate on it there.

  8. 6 remaining items

  9. andreahlert commented on Mar 28, 2026

    @andreahlert
    Collaborator

    Labels migrated to new taxonomy (#692).

  10. BaoT1301 commented on Jun 5, 2026

    @BaoT1301

    Hi! I'm a student in the CodePath AI301 open source contribution program and I noticed that PR #670 from @goutamk09 has been inactive for a while. I'd love to pick this up if it's no longer being actively worked on.

    Just wanted to check before diving in. Thanks!

  11. andreahlert commented on Jun 5, 2026

    @andreahlert
    Collaborator

    Hi! I'm a student in the CodePath AI301 open source contribution program and I noticed that PR #670 from @goutamk09 has been inactive for a while. I'd love to pick this up if it's no longer being actively worked on.

    Just wanted to check before diving in. Thanks!

    Hey @BaoT1301. Thanks for joining us. Yes, go ahead. I think you can easily get the WIP that @goutamk09 and solve some questions that had been adressed to him in the #670. If you use his work, please keep him credited on it. Thanks!

  12. BaoT1301 commented on Jun 5, 2026

    @BaoT1301

    Thank you @andreahlert! I will review @goutamk09's work in PR #670 carefully and make sure to credit him appropriately in my commits and PR description. I will open a new PR once I have something ready for review!

  13. github-actions commented on Jun 24, 2026

    @github-actions

    @BaoT1301, this issue has been inactive for 18 days.
    Are you still working on it? Drop a comment to let us know.

    If there is no update within 7 days, the assignment will be removed
    so someone else can pick it up
    (per the assignment policy).

  14. github-actions commented on Jul 15, 2026

    @github-actions

    @BaoT1301, this issue has been inactive for 20 days.
    Are you still working on it? Drop a comment to let us know.

    If there is no update within 7 days, the assignment will be removed
    so someone else can pick it up
    (per the assignment policy).

  15. github-actions commented on Jul 22, 2026

    @github-actions

    Removing assignment from @BaoT1301 after 46 days of inactivity
    (per the assignment policy).

    Feel free to comment if you want to pick this back up or if someone else wants to take it.

  16. prvn0x commented on Sep 12, 2026

    @prvn0x

    Picking this up. Building on the earlier work in #670 and addressing the review feedback there, will credit @goutamk09 in the commit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions