Skip to main content

Beamer Integration

The Beamer integration provides product announcements and changelog functionality for the DashClicks platform. Beamer is a notification center and changelog service that helps keep users informed about new features, updates, and improvements.

Integration Status

The Beamer integration code is currently commented out and returns empty data. This integration appears to be in a placeholder/inactive state. All endpoints return empty results with pagination metadata.

Architecture Overview

graph TB
subgraph "Client Layer"
A[Frontend Application]
end

subgraph "DashClicks External API"
B[Beamer Router]
C[Beamer Controller]
end

subgraph "External Service"
D[Beamer API<br/>api.getbeamer.com]
end

A -->|GET /v1/integrations/beamer/posts| B
B --> C
C -.->|Currently Disabled| D
C -->|Empty Response| A

style D fill:#f9f,stroke:#333,stroke-width:2px
style C fill:#ffa,stroke:#333,stroke-width:2px

Key Features

Product Announcements

  • Post Listing: Retrieve product update posts (currently disabled)
  • Pagination Support: Standard pagination for post retrieval
  • Empty State: Returns properly formatted empty responses

Current Implementation Status

  • ✅ Route structure defined
  • ✅ Controller skeleton implemented
  • ✅ Response format standardized
  • ❌ Beamer API calls commented out
  • ❌ No active data retrieval
  • ❌ Returns empty data arrays

Integration Components

File Structure

external/Integrations/Beamer/
├── index.js # Main router
├── README.md # Integration documentation
├── Controllers/
│ └── getPost.js # Post retrieval controller (inactive)
└── Routes/
└── post.js # Post routes

API Endpoints

EndpointMethodPurposeStatus
/v1/integrations/beamer/postsGETList product announcementsInactive (returns empty)

Authentication

Beamer API Key

The integration is designed to use a Beamer API key stored in Firebase Firestore:

// Expected configuration (currently commented out)
const beamerApiKey = process.env.BEAMER_API_KEY; // From Firestore

Key Storage:

  • Stored in: Firebase Firestore
  • Collection: Integration configurations
  • Access: Backend environment variable
  • Security: Server-side only, not exposed to clients

Response Format

Post Listing Response

{
"pagination": {
"page": 1,
"per_page": 25,
"total": 0
},
"data": []
}

Pagination Fields:

  • page: Current page number (default: 1)
  • per_page: Items per page (default: 25)
  • total: Total number of posts (currently: 0)

Implementation Notes

Current Code State

The main controller (Controllers/getPost.js) contains commented-out code:

// getAllPosts function
// - Beamer API endpoint: https://api.getbeamer.com/v0/posts
// - Authentication via API key
// - Returns empty pagination result currently

Expected Beamer API Integration

When activated, the integration should:

  1. Retrieve Posts: Fetch announcements from Beamer API
  2. Filter Posts: Apply filtering based on user preferences
  3. Transform Data: Convert Beamer format to DashClicks format
  4. Cache Results: Implement caching for performance

Beamer API Structure (Commented)

// Expected endpoint
GET https://api.getbeamer.com/v0/posts

// Expected headers
{
'Authorization': 'Bearer {api_key}',
'Content-Type': 'application/json'
}

// Expected query parameters
{
page: 1,
per_page: 25
}

Usage Example

Fetch Product Posts (Current Behavior)

// Request
GET /v1/integrations/beamer/posts?page=1&per_page=25

// Response (empty state)
{
"pagination": {
"page": 1,
"per_page": 25,
"total": 0
},
"data": []
}

Error Handling

Standard Error Response

{
"status": false,
"errno": 400,
"message": "Error description",
"additional_info": "Additional error context"
}

Expected Error Scenarios (When Active)

  • 401 Unauthorized: Invalid or missing Beamer API key
  • 404 Not Found: Post resource not found
  • 429 Rate Limited: Beamer API rate limit exceeded
  • 500 Server Error: Beamer service unavailable

Environment Variables

# Beamer API Configuration (when active)
BEAMER_API_KEY=your_beamer_api_key_here

Integration Dependencies

Required Packages

{
"express": "^4.x",
"axios": "^1.x (for external API calls when activated)"
}

Internal Dependencies

  • Utilities: Error handling utilities
  • Firestore: Configuration storage (when active)

Future Activation Checklist

To activate this integration:

  1. Obtain Beamer API Key

    • Sign up for Beamer account
    • Generate API key from Beamer dashboard
    • Store in environment variables
  2. Uncomment API Calls

    • Activate code in Controllers/getPost.js
    • Implement proper error handling
    • Add API response transformation
  3. Configure Firestore

    • Set up Firestore collection for API keys
    • Implement secure key retrieval
    • Add key rotation mechanism
  4. Add Caching

    • Implement Redis/memory caching
    • Set appropriate TTL for posts
    • Add cache invalidation logic
  5. Testing

    • Test API connectivity
    • Validate response formats
    • Verify pagination behavior
    • Test error scenarios

Monitoring and Maintenance

Health Checks (When Active)

  • Beamer API connectivity
  • API key validity
  • Response time monitoring
  • Error rate tracking

Maintenance Tasks

  • Monitor Beamer API changes
  • Update API version as needed
  • Rotate API keys periodically
  • Review and update post filtering logic
  • Product Announcements (Frontend)
  • Notification System (Internal)

Support Resources

Beamer Documentation

DashClicks Support

  • Integration Issues: Check with backend team
  • API Key Access: Contact DevOps for Firestore access
  • Feature Requests: Submit to product team

Last Updated: December 2024
Status: Inactive (Placeholder Implementation)
Complexity: LOW
Maintenance: Minimal (awaiting activation decision)

💬

Documentation Assistant

Ask me anything about the docs

Hi! I'm your documentation assistant. Ask me anything about the docs!

I can help you with:
- Code examples
- Configuration details
- Troubleshooting
- Best practices

Try asking: How do I configure the API?
09:30 AM