gamma-security-basics

Gamma Security Basics

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "gamma-security-basics" with this command: npx skills add jeremylongshore/claude-code-plugins-plus-skills/jeremylongshore-claude-code-plugins-plus-skills-gamma-security-basics

Gamma Security Basics

Overview

Security best practices for Gamma API integration to protect credentials and data.

Prerequisites

  • Active Gamma integration

  • Environment variable support

  • Understanding of secret management

Instructions

Step 1: Secure API Key Storage

// NEVER do this const gamma = new GammaClient({ apiKey: 'gamma_live_abc123...', // Hardcoded - BAD! });

// DO this instead const gamma = new GammaClient({ apiKey: process.env.GAMMA_API_KEY, });

Environment Setup:

.env (add to .gitignore!)

GAMMA_API_KEY=gamma_live_abc123...

Load in application

import 'dotenv/config';

Step 2: Key Rotation Strategy

// Support multiple keys for rotation const gamma = new GammaClient({ apiKey: process.env.GAMMA_API_KEY_PRIMARY || process.env.GAMMA_API_KEY_SECONDARY, });

// Rotation script async function rotateApiKey() { // 1. Generate new key in Gamma dashboard // 2. Update GAMMA_API_KEY_SECONDARY // 3. Deploy and verify // 4. Swap PRIMARY and SECONDARY // 5. Revoke old key }

Step 3: Request Signing (if supported)

import crypto from 'crypto';

function signRequest(payload: object, secret: string): string { const timestamp = Date.now().toString(); const message = timestamp + JSON.stringify(payload);

return crypto .createHmac('sha256', secret) .update(message) .digest('hex'); }

// Usage with webhook verification function verifyWebhook(body: string, signature: string, secret: string): boolean { const expected = crypto .createHmac('sha256', secret) .update(body) .digest('hex');

return crypto.timingSafeEqual( Buffer.from(signature), Buffer.from(expected) ); }

Step 4: Access Control Patterns

// Scoped API keys (if supported) const readOnlyGamma = new GammaClient({ apiKey: process.env.GAMMA_API_KEY_READONLY, scopes: ['presentations:read', 'exports:read'], });

const fullAccessGamma = new GammaClient({ apiKey: process.env.GAMMA_API_KEY_FULL, });

// Permission check before operations async function createPresentation(user: User, data: object) { if (!user.permissions.includes('gamma:create')) { throw new Error('Insufficient permissions'); } return fullAccessGamma.presentations.create(data); }

Step 5: Audit Logging

import { GammaClient } from '@gamma/sdk';

function createAuditedClient(userId: string) { return new GammaClient({ apiKey: process.env.GAMMA_API_KEY, interceptors: { request: (config) => { console.log(JSON.stringify({ timestamp: new Date().toISOString(), userId, action: ${config.method} ${config.path}, type: 'gamma_api_request', })); return config; }, }, }); }

Security Checklist

  • API keys stored in environment variables

  • .env files in .gitignore

  • No keys in source code or logs

  • Key rotation procedure documented

  • Minimal permission scopes used

  • Audit logging enabled

  • Webhook signatures verified

  • HTTPS enforced for all calls

Error Handling

Security Issue Detection Remediation

Exposed key GitHub scanning Rotate immediately

Key in logs Log audit Filter sensitive data

Unauthorized access Audit logs Revoke and investigate

Weak permissions Access review Apply least privilege

Resources

  • Gamma Security Guide

  • API Key Management

  • OWASP API Security

Next Steps

Proceed to gamma-prod-checklist for production readiness.

Output

  • Configuration files or code changes applied to the project

  • Validation report confirming correct implementation

  • Summary of changes made and their rationale

Examples

Basic usage: Apply gamma security basics to a standard project setup with default configuration options.

Advanced scenario: Customize gamma security basics for production environments with multiple constraints and team-specific requirements.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Security

xss-vulnerability-scanner

No summary provided by upstream source.

Repository SourceNeeds Review
Security

cookie-security-analyzer

No summary provided by upstream source.

Repository SourceNeeds Review
Security

session-security-checker

No summary provided by upstream source.

Repository SourceNeeds Review
Security

hipaa-audit-helper

No summary provided by upstream source.

Repository SourceNeeds Review