Skip to content
Back to skills

Lucidchart Deploy Integration

BSecurity

'Deploy Integration for Lucidchart. Trigger: \"lucidchart deploy integration\". '

  • 3 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 12, 2026
ai-agentstypescriptgobashnodeexpressdockergitapi

Works with

  • cli
  • api
  • mcp

Security analysis

B84/100
  • mediumUses curl or wget to download content
  • criticalExfiltrates credentials via HTTP — exact pattern from Snyk ToxicSkills study

Pro shows the line behind each finding and how to fix it

Scanned September 12, 2026

npx -y skills add thedixitjain/the-mega-skill-library --skill lucidchart-deploy-integration --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Lucidchart Deploy Integration?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Lucidchart Deploy Integration
[![Security: B — Skills Directory](https://www.skillsdirectory.com/api/skills/thedixitjain-lucidchart-deploy-integration/badge)](https://www.skillsdirectory.com/skills/thedixitjain-lucidchart-deploy-integration)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: lucidchart-deploy-integration
description: "'Deploy Integration for Lucidchart. Trigger: \"lucidchart deploy integration\". '"
allowed-tools: "Read, Write, Edit, Grep"
category: mcp-and-integrations
source_repo: jeremylongshore/claude-code-plugins-plus-skills
source_path: "skills/.curated/lucidchart-deploy-integration/SKILL.md"
source_url: https://github.com/jeremylongshore/claude-code-plugins-plus-skills/blob/HEAD/skills/.curated/lucidchart-deploy-integration/SKILL.md
---

# Lucidchart Deploy Integration

## Overview

Deploy a containerized Lucidchart integration service that manages diagram documents, manipulates shapes and connectors programmatically, and synchronizes visual collaboration data through the Lucid API. This skill covers Docker multi-stage builds for the Lucid SDK, OAuth2 token configuration, health checks that validate document API access, and rolling deployments with safe diagram state preservation during updates.

## Prerequisites

- Docker 24+ and Docker Compose v2 installed
- Valid `LUCID_API_KEY` (OAuth2 client credentials) from the Lucid developer portal
- Node.js 20 LTS (build stage)
- Network access to `api.lucid.co` on port 443
- Target deployment host with at least 512MB available memory (diagram rendering is memory-intensive)

## Docker Configuration

```dockerfile
FROM node:20-slim AS builder
WORKDIR /build
COPY package*.json tsconfig.json ./
RUN npm ci
COPY src/ ./src/
RUN npm run build

FROM node:20-slim
RUN groupadd -r lucid && useradd -r -g lucid -m appuser
WORKDIR /app
COPY --from=builder /build/dist ./dist/
COPY --from=builder /build/node_modules ./node_modules/
COPY package*.json ./
RUN npm prune --production
USER appuser
EXPOSE 3000
HEALTHCHECK --interval=30s --timeout=10s --retries=3 \
  CMD curl -f http://localhost:3000/health || exit 1
CMD ["node", "dist/index.js"]
```

## Environment Variables

```bash
LUCID_API_KEY="lucid_xxxxxxxxxxxxxxxx"       # OAuth2 API key from developer portal
LUCID_CLIENT_SECRET=""                        # OAuth2 client secret
LUCID_BASE_URL="https://api.lucid.co"        # API base URL
LUCID_ACCOUNT_ID=""                           # Target Lucid account identifier
LOG_LEVEL="info"                              # debug | info | warn | error
NODE_ENV="production"
PORT="3000"
```

## Health Check Endpoint

```typescript
import express from "express";

const app = express();

app.get("/health", async (_req, res) => {
  try {
    const response = await fetch(`${process.env.LUCID_BASE_URL}/v1/documents`, {
      method: "GET",
      headers: {
        Authorization: `Bearer ${process.env.LUCID_API_KEY}`,
        "Lucid-Api-Version": "1",
      },
    });
    if (!response.ok) throw new Error(`Lucid API returned ${response.status}`);
    const data = await response.json();
    res.json({ status: "healthy", documentCount: data.documents?.length ?? 0 });
  } catch (err) {
    res.status(503).json({ status: "unhealthy", error: (err as Error).message });
  }
});
```

## Deployment Steps

### Step 1: Build Image

```bash
docker build -t lucidchart-integration:$(git rev-parse --short HEAD) .
```

### Step 2: Run Container

```bash
docker run -d --name lucidchart-svc \
  --env-file .env.production \
  -p 3000:3000 \
  --memory=512m \
  --restart unless-stopped \
  lucidchart-integration:$(git rev-parse --short HEAD)
```

### Step 3: Verify Health

```bash
curl -s http://localhost:3000/health | jq .
# Expect: { "status": "healthy", "documentCount": 47 }
```

### Step 4: Rolling Update

```bash
docker pull lucidchart-integration:latest
docker stop lucidchart-svc && docker rm lucidchart-svc
docker run -d --name lucidchart-svc --env-file .env.production -p 3000:3000 --memory=512m lucidchart-integration:latest
```

## Rollback Procedure

```text
# List recent images
docker images lucidchart-integration --format "{{.Tag}} {{.CreatedAt}}" | head -5
# Roll back to previous tag
docker stop lucidchart-svc && docker rm lucidchart-svc
docker run -d --name lucidchart-svc --env-file .env.production -p 3000:3000 --memory=512m lucidchart-integration:<previous-tag>
```

## Error Handling

| Issue | Cause | Fix |
|-------|-------|-----|
| 403 on document access | OAuth2 scopes missing `lucidchart.document.content` | Re-authorize with required scopes in Lucid developer portal |
| Container OOM killed | Large diagram rendering exceeds memory | Increase memory limit to 1GB with `--memory=1g` for complex documents |
| Token refresh failures | Expired `LUCID_CLIENT_SECRET` or clock skew | Regenerate client credentials and verify server time sync (NTP) |
| Health check timeout | Rate limiting on `/v1/documents` endpoint | Increase `HEALTHCHECK --timeout` to 15s; cache document count locally |
| Shape API 422 errors | Invalid page or layer ID in diagram mutations | Validate document structure with `GET /v1/documents/{id}/pages` before writes |

## Resources

- [Lucid Developer Docs](https://developer.lucid.co/reference/overview)

## Next Steps

See `lucidchart-webhooks-events`.

---

**Source:** [`jeremylongshore/claude-code-plugins-plus-skills`](https://github.com/jeremylongshore/claude-code-plugins-plus-skills) → `skills/.curated/lucidchart-deploy-integration/SKILL.md`

**Also appears in:** `jeremylongshore/claude-code-plugins-plus-skills/plugins/saas-packs/lucidchart-pack/skills/lucidchart-deploy-integration/SKILL.md`

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.