Data Model
GoFigr organizes your work into a hierarchy that mirrors how data science and scientific computing projects are naturally structured: teams own projects, projects contain analyses, and analyses contain figures.
At a Glance
Organization
└── Workspace
├── Analysis
│ └── Figure
│ └── Figure Revision (images, code, metadata)
├── Asset
│ └── Asset Revision (data files)
└── Story (AI-generated presentations)Organization
A team, lab, or company
GoFigr admin (Pro feature)
Workspace
A project or area of work
Web UI or client
Analysis
A notebook, script, or document
Client (auto) or Web UI
Figure
A named visualization that evolves over time
Client (auto) or Web UI
Figure Revision
A single snapshot of a figure—image, code, and metadata
Client (auto)
Asset
A tracked data file (CSV, Excel, Parquet, Jupyter notebook, etc.)
Client
Asset Revision
A specific version of an asset, identified by content hash
Client (auto)
Story
An AI-generated presentation or report built from figures
Web UI
Organizations (GoFigr Pro)
An organization represents a team, lab, department, or company. Organizations own workspaces and control who has access to them.
Key points:
Every workspace belongs to exactly one organization.
Organization members are assigned roles that determine what they can do across the organization's workspaces.
You can belong to multiple organizations
Organization admins can set custom branding (e.g. company logo)
Membership roles (from most to least privileged):
Admin
✅
✅
✅
Workspace Admin
—
✅
✅
Workspace Creator
—
✅
Own only
Workspace Viewer
—
—
Assigned only
Organizations are managed through the GoFigr web UI at app.gofigr.io.
Workspaces
A workspace is your primary unit of organization in GoFigr. Think of it as a project folder—everything related to a particular project, study, or area of work lives in one workspace.
Key points:
A workspace contains analyses, assets, and stories.
Each workspace has its own set of members with independent access controls.
When you run
gfconfig, you select a default workspace that the Python and R clients use automatically.You can switch workspaces at any time in the web UI or override the default in your client code.
What belongs in a workspace:
A good rule of thumb is one workspace per project. For example, a clinical trial might have its own workspace, as would a machine learning experiment or a course you're teaching. Related notebooks, figures, data files, and presentations all live together.
Workspace members have one of these roles:
Viewer
✅
—
—
—
Creator
✅
✅
—
—
Admin
✅
✅
✅
—
Owner
✅
✅
✅
✅
Analyses
An analysis groups related figures together. It typically corresponds to a single notebook, script, or document.
Key points:
Analyses live inside a workspace.
In Jupyter, an analysis is created automatically using the notebook's filename (e.g.,
exploration.ipynbbecomes an analysis called "exploration").In R, the analysis name defaults to the R Markdown document title or can be set manually.
You can also create analyses manually in the web UI—for example, when importing figures from PowerPoint or Word documents.
Analyses can be shared independently via link sharing, even if the rest of the workspace is private.
When are analyses created?
Automatically when you load the GoFigr extension. The analysis is named after your notebook file:
You can override the name:
Specified when you create a Publisher:
Optionally specified when enabling GoFigr, or defaults to the document title:
Figures
A figure represents a named visualization that can evolve over time. Each time you re-run a cell or script that produces the same plot, GoFigr creates a new revision under the same figure, building a complete version history.
Key points:
Figures live inside an analysis.
A figure has a name (e.g., "Survival Curve" or "PCA Scatter Plot") and accumulates revisions over time.
In the web UI, you browse figures and can drill into individual revisions or compare versions.
Figures can be shared via link sharing or with specific users, independent of the parent analysis or workspace.
Figures can also be imported from Git repositories, PowerPoint files, or Word documents through the web UI.
When are figures created?
Automatically each time a plotting cell executes. GoFigr names figures based on the plot title or assigns a default name:
You can also publish manually with an explicit name:
Created when you call publish():
Created when you call publish():
Figure Revisions
A figure revision is a single snapshot of a figure at a point in time. It is the core unit of reproducibility in GoFigr—each revision captures everything needed to understand and recreate a visualization.
What a revision contains:
Image
The rendered figure in one or more formats (PNG, SVG, HTML for interactive plots)
Source code
The code cell or script that produced the figure
Metadata
Execution environment, library versions, timestamps, custom key-value pairs
Data
Inline data tables (DataFrames) embedded with the revision
Linked assets
References to tracked data files (see Assets below)
Key points:
Revisions are immutable—once created, they don't change. This guarantees reproducibility.
Each revision has a unique ID and QR code, which appear below the figure in your notebook. Scanning the QR code or clicking the link takes you directly to that revision in the web UI.
You can compare revisions side-by-side in the web UI to see how a figure evolved.
Revisions inherit sharing permissions from their parent figure but can also be shared independently.
When are revisions created?
A new revision is created every time a figure is published. In Jupyter with auto-publish enabled, this means every time you execute a cell that produces a plot. In R, it happens every time you call publish(). Each run of your notebook or script adds a new revision, creating a full history.
Assets
An asset is a tracked data file in your workspace. While figures capture visualizations, assets capture the data that feeds into them—CSV files, Excel spreadsheets, Parquet datasets, and more.
Key points:
Assets live at the workspace level (not inside an analysis), because the same dataset is often used across multiple analyses.
Like figures, assets have revisions. Each time the file content changes, a new asset revision is created.
Asset revisions are identified by a content hash: if the file hasn't changed, no new revision is created. This is efficient and ensures you always know exactly which version of the data was used.
When a figure is created from tracked data, the figure revision is automatically linked to the corresponding asset revision. This means you can always trace back from a figure to the exact data that produced it.
How assets get tracked:
Use GoFigr's tracked reading functions instead of pandas:
GoFigr supports read_csv, read_excel, read_json, read_parquet, read_feather, and read_pickle—all with the same API as their pandas equivalents.
You can also sync files manually:
Use sync_workspace_asset() to track data files:
Figures vs. Assets
What they store
Visualizations (plots, charts, images)
Data files (CSV, Excel, Parquet, etc.)
Where they live
Inside an analysis
At the workspace level
Revisions contain
Images, code, metadata, data frames
File content
Created by
Publishing a plot
Tracking/syncing a data file
Relationship
A figure revision can link to asset revisions
An asset revision can be linked to many figure revisions
The link between figures and assets is what makes GoFigr's traceability work: you can start from any figure and trace back through the code, the data, and the environment to fully understand how it was created.
Stories
A story is an AI-generated presentation or report built from a collection of figures. Stories bring your figures together into a narrative, with AI-generated titles, descriptions, and transitions.
Key points:
Stories are created from the web UI by selecting figures within an analysis.
The AI analyzes not just the images but also the source code, metadata, and data context to generate accurate technical descriptions.
Stories can be exported as PowerPoint or Word documents.
Like other objects, stories can be shared via link or with specific users.
To learn more, see AI Story Mode.
Sharing & Permissions
GoFigr provides two ways to share content:
Link sharing — Generate a public link for any analysis, figure, or asset. Anyone with the link can view the content without needing a GoFigr account.
User sharing — Share with specific GoFigr users, granting them access through their account.
Sharing can be configured at any level of the hierarchy. For example, you can share a single figure revision without exposing the rest of the analysis or workspace.
How It All Fits Together
Here's a typical workflow showing how the data model comes to life:
You create a workspace for your project (e.g., "Lung Cancer Biomarkers") through the web UI or during
gfconfigsetup.You open a Jupyter notebook and load GoFigr. An analysis is automatically created from the notebook name.
You load data using
gf.read_csv()(notegf, notpd) or similar. GoFigr creates an asset in your workspace and tracks the file version.You create plots. Each plot becomes a figure, and each execution creates a new figure revision containing the image, code, and a link to the data asset.
You iterate. As you refine your analysis and re-run cells, new revisions accumulate under each figure, giving you a complete history.
You share results. In the web UI, you create a story from your figures. The AI generates a polished presentation that you export to PowerPoint and share with your team.
A colleague has a question about one of your figures. They scan the QR code below the figure, which takes them directly to the figure revision in GoFigr—complete with source code, data lineage, and execution context.
Last updated