RedPlanetHQ / RedPlanetHQ/core

New Integration: Box

Open
#501 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement good first issue integration new-feature new-integration
Dominant language
TypeScript
Stars
2k
Forks
194
Avg merge
12m
Merged PRs (30d)
2

Description

Description

Add Box integration to sync cloud storage data including files, folders, collaborations, comments, and metadata into CORE.

Reference Implementations

Existing Integrations (use as templates)
  • integrations/google-docs/ - Similar document/cloud storage system
  • integrations/notion/ - Content management integration
  • integrations/slack/ - For reference
Required Files Structure
integrations/box/
├── src/
│   ├── index.ts          # Main entry, OAuth spec
│   ├── schedule.ts       # Sync logic
│   ├── utils.ts          # Box API utilities
│   ├── account-create.ts # OAuth setup
│   └── create-activity.ts # Activity formatting
├── package.json
├── tsup.config.ts
└── README.md

Box API Integration

OAuth Setup
  • Supports OAuth 2.0, JSON Web Token (JWT), Client Credentials, and App Token authentication
  • OAuth 2.0 recommended for user-facing integrations
  • Developer Console available for app management
  • Base URL: https://api.box.com/2.0
  • Developer docs: https://developer.box.com/
Key Endpoints
  • GET /files/{id} - Get file info
  • GET /folders/{id} - Get folder info
  • GET /folders/{id}/items - List folder items
  • POST /files/content - Upload file
  • GET /files/{id}/comments - Get file comments
  • GET /collaborations - List collaborations
  • GET /events - Get user/enterprise events
  • GET /search - Search content
  • GET /metadata_templates - Get metadata templates
  • GET /users - List users

Events to Track

  1. Files - File uploaded, downloaded, previewed, shared, moved, deleted, versioned
  2. Folders - Folder created, renamed, moved, shared, deleted
  3. Collaborations - Collaborator added, removed, role changed
  4. Comments - Comment added, edited, deleted on files
  5. Metadata - Metadata applied, updated, removed

Implementation Tasks

  • Set up basic integration structure following integrations/github/src/index.ts pattern
  • Implement OAuth 2.0 flow in account-create.ts
  • Create API utilities in utils.ts for Box Platform API calls
  • Implement sync logic in schedule.ts for files, folders, and events
  • Convert file/folder events to CORE activity format
  • Add error handling and rate limiting
  • Create integration documentation
  • Add to integrations/README.md

Technical Notes

  • Multiple authentication methods available (OAuth 2.0, JWT, Client Credentials, App Token)
  • Box Events API provides enterprise-wide event stream for audit and sync
  • SDKs available for multiple languages
  • Box CLI available for scripting and automation
  • Box UI Elements available for embedded experiences
  • Legal holds and retention policies supported for compliance use cases

Resources

Labels

enhancement, integration, new-feature

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the templates in integrations/google-docs/, integrations/notion/, integrations/slack/, and the integrations/github/src/index.ts pattern. Review the Box API documentation and define the OAuth, sync, activity, error-handling, and rate-limiting scope across the listed files. Done means the Box structure, authentication, synchronization, activity conversion, documentation, and integrations/README.md entry are complete.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
backend-api-design, cloud
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.