Add Figma plugin v1.1.0 for monitoring teams, projects, components and styles#89
Add Figma plugin v1.1.0 for monitoring teams, projects, components and styles#89conor-richey wants to merge 1 commit into
Conversation
…d styles Indexes Figma Projects, Components, and Styles via the REST API, with dashboards for an account-wide overview, per-project file browsing, and a manual project/file picker for version history and comments (Figma has no team-wide file-list endpoint, so files can't be indexed as objects).
📝 WalkthroughWalkthroughChangesFigma integration
Sequence Diagram(s)sequenceDiagram
participant FigmaAPI
participant DataStreams
participant IndexDefinitions
participant Dashboards
FigmaAPI->>DataStreams: Return team and file data
DataStreams->>IndexDefinitions: Map team records to Figma object types
DataStreams->>Dashboards: Supply projects, files, versions, and comments
Dashboards->>Dashboards: Render configured tables, counts, charts, and properties
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@plugins/Figma/v1/docs/README.md`:
- Around line 3-13: Update the “What gets indexed” table in the Figma README to
remove the Figma File row, or explicitly clarify that files are surfaced through
data streams rather than indexed as an object type; retain the entries for Figma
Project, Figma Component, and Figma Style.
- Around line 33-37: Add the `text` language identifier to the fenced code block
containing the Figma Team URL and explanatory marker in the documentation.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI (base), Organization UI (inherited)
Review profile: ASSERTIVE
Plan: Pro
Run ID: d1a510e8-7f63-4e83-868d-7667035b42c3
⛔ Files ignored due to path filters (1)
plugins/Figma/v1/icon.svgis excluded by!**/*.svg
📒 Files selected for processing (22)
plugins/Figma/v1/configValidation.jsonplugins/Figma/v1/custom_types.jsonplugins/Figma/v1/dataStreams/fileComments.jsonplugins/Figma/v1/dataStreams/fileSummary.jsonplugins/Figma/v1/dataStreams/fileVersions.jsonplugins/Figma/v1/dataStreams/filesInProject.jsonplugins/Figma/v1/dataStreams/projectFiles.jsonplugins/Figma/v1/dataStreams/projectsPicker.jsonplugins/Figma/v1/dataStreams/teamComponents.jsonplugins/Figma/v1/dataStreams/teamProjects.jsonplugins/Figma/v1/dataStreams/teamStyles.jsonplugins/Figma/v1/defaultContent/componentDashboard.dash.jsonplugins/Figma/v1/defaultContent/fileExplorer.dash.jsonplugins/Figma/v1/defaultContent/manifest.jsonplugins/Figma/v1/defaultContent/overview.dash.jsonplugins/Figma/v1/defaultContent/projectDashboard.dash.jsonplugins/Figma/v1/defaultContent/scopes.jsonplugins/Figma/v1/defaultContent/styleDashboard.dash.jsonplugins/Figma/v1/docs/README.mdplugins/Figma/v1/indexDefinitions/default.jsonplugins/Figma/v1/metadata.jsonplugins/Figma/v1/ui.json
| Bring your Figma team into SquaredUp. This plugin indexes the projects, files, components and styles in a Figma team, and lets you dashboard file summaries, version history and comments. | ||
|
|
||
| ## What gets indexed | ||
|
|
||
| | Object type | Represents | | ||
| | --- | --- | | ||
| | `Figma Project` | A project within the configured Figma team | | ||
| | `Figma File` | A design file within a project | | ||
| | `Figma Component` | A published component in the team's library | | ||
| | `Figma Style` | A published style (fill, text, effect or grid) in the team's library | | ||
|
|
There was a problem hiding this comment.
🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Description: Check if "Figma File" is defined as an indexed type in indexDefinitions.
rg -n "Figma File" plugins/Figma/v1/indexDefinitions/default.jsonRepository: squaredup/plugins
Length of output: 155
🏁 Script executed:
#!/bin/bash
set -euo pipefail
printf '\n== files ==\n'
git ls-files plugins/Figma/v1 | sed -n '1,200p'
printf '\n== indexDefinitions/default.json mentions ==\n'
rg -n '"Figma File"|Figma File|Figma Project|Figma Component|Figma Style' \
plugins/Figma/v1/indexDefinitions/default.json plugins/Figma/v1/custom_types.json plugins/Figma/v1/docs/README.md || true
printf '\n== README excerpt ==\n'
sed -n '1,30p' plugins/Figma/v1/docs/README.md
printf '\n== custom_types.json excerpt ==\n'
if [ -f plugins/Figma/v1/custom_types.json ]; then
sed -n '1,220p' plugins/Figma/v1/custom_types.json
fi
printf '\n== indexDefinitions/default.json excerpt ==\n'
if [ -f plugins/Figma/v1/indexDefinitions/default.json ]; then
sed -n '1,260p' plugins/Figma/v1/indexDefinitions/default.json
fiRepository: squaredup/plugins
Length of output: 5506
🏁 Script executed:
#!/bin/bash
set -euo pipefail
printf '\n== tree near Figma plugin ==\n'
find plugins/Figma/v1 -maxdepth 3 -type f | sort
printf '\n== version metadata ==\n'
if [ -f plugins/Figma/v1/metadata.json ]; then
cat plugins/Figma/v1/metadata.json
fi
printf '\n== search for file indexing terms ==\n'
rg -n '"file(s)?"|files are not indexed|team-wide file-list|Figma File|project-scoped' plugins/Figma/v1 -g '!**/node_modules/**' || trueRepository: squaredup/plugins
Length of output: 3089
Clarify the Figma indexed objects list
Figma File isn’t an indexed object here; only Figma Project, Figma Component, and Figma Style are defined. Remove it from the table or clarify that files are surfaced via data streams, not indexed as a type.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@plugins/Figma/v1/docs/README.md` around lines 3 - 13, Update the “What gets
indexed” table in the Figma README to remove the Figma File row, or explicitly
clarify that files are surfaced through data streams rather than indexed as an
object type; retain the entries for Figma Project, Figma Component, and Figma
Style.
| ``` | ||
| https://www.figma.com/files/team/1234567890123456789/My-Team | ||
| ^^^^^^^^^^^^^^^^^^^ | ||
| This is your Team ID | ||
| ``` |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Specify a language for the fenced code block.
The fenced code block at line 33 has no language specified, which triggers markdownlint MD040. Add text as the language identifier.
📝 Proposed fix
-```
+```text
https://www.figma.com/files/team/1234567890123456789/My-Team
^^^^^^^^^^^^^^^^^^^
This is your Team ID</details>
<details>
<summary>🧰 Tools</summary>
<details>
<summary>🪛 markdownlint-cli2 (0.22.1)</summary>
[warning] 33-33: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
</details>
</details>
<details>
<summary>🤖 Prompt for AI Agents</summary>
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @plugins/Figma/v1/docs/README.md around lines 33 - 37, Add the text
language identifier to the fenced code block containing the Figma Team URL and
explanatory marker in the documentation.
</details>
<!-- cr-indicator-types:potential_issue -->
<!-- cr-comment:v1:babc4cfd60dfc84c4641582c -->
_Source: Linters/SAST tools_
<!-- This is an auto-generated comment by CodeRabbit -->
What does this do?
Adds a new SquaredUp plugin for Figma. It indexes Figma Projects, Components, and Styles from a configured team via Figma's REST API, and ships dashboards for an account-wide overview, per-project file browsing, and per-object (Project/Component/Style) perspectives.
Why is it useful?
Lets teams monitor their Figma workspace alongside other tools in SquaredUp — see project/file activity, track published design-system components and styles, and drill into file version history and comments without leaving SquaredUp.
Known limitations
Testing performed
squaredup validatepasses.squaredup test), including pagination (up to 729 rows / 25 pages onfileVersions) and the two-object scoping check on object-scoped streams.Summary by CodeRabbit