From 5ecac367da7fd0d806d06ded0ab4d5f70adf5d03 Mon Sep 17 00:00:00 2001 From: Greg Herlein Date: Wed, 25 Mar 2026 14:44:43 -0700 Subject: [PATCH] interim commit --- content-remove-plan.md | 160 +++++ documentation/README.md | 1 - .../01-integrating-with-bsn-cloud.md | 627 +----------------- .../02-automated-provisioning.md | 1 - .../part-5-bsn-cloud/04-bsn-content.md | 11 - documentation/part-5-bsn-cloud/README.md | 2 - .../part-5-bsn-cloud/examples/README.md | 5 - howto-articles/10-setting-up-bsn-cloud.md | 74 +-- 8 files changed, 165 insertions(+), 716 deletions(-) create mode 100644 content-remove-plan.md delete mode 100644 documentation/part-5-bsn-cloud/04-bsn-content.md diff --git a/content-remove-plan.md b/content-remove-plan.md new file mode 100644 index 0000000..2f4af38 --- /dev/null +++ b/content-remove-plan.md @@ -0,0 +1,160 @@ +# Plan: Remove BSN.content Docs (Content, Presentations, Schedules) + +All BSN.content cloud API documentation covering content management, presentations, +and schedules is being relocated to `/external/purplecontent/docs`. This plan +describes every file to delete and every file to edit. + +--- + +## Files to Delete + +| File | Reason | +|------|--------| +| `documentation/part-5-bsn-cloud/04-bsn-content.md` | Dedicated BSN.content stub chapter | + +No other files are wholesale deletions — the rest have mixed content that requires +surgical edits. + +--- + +## Files to Edit + +### 1. `documentation/part-5-bsn-cloud/01-integrating-with-bsn-cloud.md` + +Remove the following sections entirely (they cover BSN.content APIs exclusively): + +- **"Content Management"** section (starts ~line 210) — includes: + - Content Library Organization + - Content Library API examples (`listContent`, `uploadContent`) + - Content Versioning (`getContentInfo`) + - Content Tagging (`addContentTags`) + - Content Distribution / CDN description + +- **"Presentation Creation"** section (starts ~line 336) — includes: + - BrightAuthor:connected workflow + - Web-based presentation editing + - Interactive Presentations example (`createPresentation`) + +- **"Scheduling and Playlists"** section (starts ~line 426) — includes: + - Time-based scheduling + - Day-part scheduling + - Date ranges / dynamic playlists + +Also update the **intro paragraph** (line 9): remove "content management" from the +list of topics covered, keeping provisioning, remote control, and API-based automation. + +Also update the **"bsn.Content" service tier block** (lines 36–43): either remove the +entire tier description or replace it with a one-line pointer to `/external/purplecontent/docs`. + +Keep everything else: architecture overview, account setup, organization structure, +user management, device provisioning, authentication, and device control. + +--- + +### 2. `documentation/part-5-bsn-cloud/README.md` + +- **Chapters table**: remove the BSN.content row: + ``` + | 4 | [BSN.content](04-bsn-content.md) | Content management and scheduling | + ``` + +- **Code Examples table**: remove the Content Management row: + ``` + | [Content Management](examples/content-management/) | Upload, scheduling, synchronization | + ``` + +- **"What You'll Learn" table**: remove the "REST API Integration" row if it refers + specifically to content/presentation APIs (review in context). If the row is generic, + keep it. + +- Update the section intro text: remove "content management" from the platform + description. + +--- + +### 3. `documentation/README.md` (Technical Documentation index) + +- **Part 5 chapter table**: remove the BSN.content row: + ``` + | [BSN.content](part-5-bsn-cloud/04-bsn-content.md) | Content management and distribution | + ``` + +--- + +### 4. `howto-articles/10-setting-up-bsn-cloud.md` + +- **"What You'll Learn" list** (line 17): remove the bullet: + ``` + - Deploying content through BSN.cloud + ``` + +- **"BSN.cloud Benefits" table** (lines 22–30): remove the rows: + ``` + | **Content Deployment** | Push content updates without physical access | + | **Scheduling** | Time-based content scheduling | + ``` + +- **"Part 5: Content Deployment"** section (~line 384): remove the entire section, + including the manual UI steps and the sync spec / programmatic deployment examples. + +- Review the **Troubleshooting** table (~line 624): remove any rows that reference + content not updating or sync spec issues. + +- Review **"Next Steps"** section (~line 646): remove the Content Deployment step and + any link that points to content-specific workflows. + +- The article is otherwise about account setup, player registration, and provisioning + (mDNS, DHCP Option 43, Remote DWS) — keep all of that. + +--- + +### 5. `documentation/part-5-bsn-cloud/examples/README.md` + +- Remove the **Content Management** category entry and its link to + `examples/content-management/`. + +--- + +### 6. `documentation/part-6-appendices/README.md` + +- **"Additional Resources" table**: evaluate the BSN.cloud API Reference link + (`https://docs.bsn.cloud/`). If that URL documents BSN.content APIs (content, + presentations, schedules) alongside other APIs, replace it with a note pointing to + `/external/purplecontent/docs` for content APIs. If the URL covers non-content + APIs (device management, provisioning), keep it. + +--- + +## Files to Leave Unchanged + +The following files contain incidental mentions of "content" in the generic sense +(media playback, file downloads) — not BSN.content cloud API references. No changes +needed: + +- `documentation/part-2-brightscript-development/01-brightscript-language-reference.md` +- `documentation/part-2-brightscript-development/02-practical-development.md` +- `documentation/part-3-javascript-development/01-javascript-playback.md` +- `howto-articles/04-playing-video-content.md` +- `howto-articles/05-creating-image-slideshow.md` +- `howto-articles/08-fetching-remote-content.md` +- `README.md` (root) — line 57 mentions "managing players, content, and schedules" + in a generic cloud context; the surrounding text already points to gopurple and + does not document BSN.content APIs directly. Low-priority edit if desired. + +--- + +## Execution Order + +1. Delete `documentation/part-5-bsn-cloud/04-bsn-content.md` +2. Edit `documentation/part-5-bsn-cloud/01-integrating-with-bsn-cloud.md` — remove + Content Management, Presentation Creation, and Scheduling sections +3. Edit `documentation/part-5-bsn-cloud/README.md` — remove BSN.content chapter row + and Content Management examples row +4. Edit `documentation/README.md` — remove BSN.content chapter row from Part 5 table +5. Edit `howto-articles/10-setting-up-bsn-cloud.md` — remove Part 5: Content Deployment + section and associated references +6. Edit `documentation/part-5-bsn-cloud/examples/README.md` — remove Content Management + category +7. Evaluate and edit `documentation/part-6-appendices/README.md` — update BSN.cloud + API Reference link as appropriate +8. Verify no dangling internal links remain (`grep -r "04-bsn-content\|content-management"`) diff --git a/documentation/README.md b/documentation/README.md index 9f3a3cc..cfaf0f2 100644 --- a/documentation/README.md +++ b/documentation/README.md @@ -84,7 +84,6 @@ This section contains comprehensive technical documentation covering all aspects | [Integrating with BSN.cloud](part-5-bsn-cloud/01-integrating-with-bsn-cloud.md) | Platform overview and authentication | | [Automated Provisioning](part-5-bsn-cloud/02-automated-provisioning.md) | Streamline device deployment | | [Per-Player Control](part-5-bsn-cloud/03-per-player-control.md) | Individual player management | -| [BSN.content](part-5-bsn-cloud/04-bsn-content.md) | Content management and distribution | [**Explore Part 5 →**](part-5-bsn-cloud/README.md) diff --git a/documentation/part-5-bsn-cloud/01-integrating-with-bsn-cloud.md b/documentation/part-5-bsn-cloud/01-integrating-with-bsn-cloud.md index e50eb8b..dc13063 100644 --- a/documentation/part-5-bsn-cloud/01-integrating-with-bsn-cloud.md +++ b/documentation/part-5-bsn-cloud/01-integrating-with-bsn-cloud.md @@ -6,7 +6,7 @@ ## Introduction -BSN.cloud (BrightSign Network cloud) is BrightSign's cloud-based content management and device control platform. It provides a comprehensive solution for managing digital signage networks at scale, from single installations to enterprise deployments with thousands of players. This chapter covers BSN.cloud integration, including provisioning, content management, remote control, and API-based automation. +BSN.cloud (BrightSign Network cloud) is BrightSign's cloud-based device control platform. It provides a comprehensive solution for managing digital signage networks at scale, from single installations to enterprise deployments with thousands of players. This chapter covers BSN.cloud integration, including provisioning, remote control, and API-based automation. ## BSN.cloud Overview @@ -34,20 +34,14 @@ BSN.cloud offers multiple service tiers: - B-Deploy automated provisioning **bsn.Content** (Paid subscription): -- Full content management capabilities -- BrightAuthor:connected presentation authoring -- Content library with versioning -- Scheduled content deployment -- Advanced analytics and reporting -- Full API access -- Priority support + +Content management, presentations, and scheduling are documented in the purplecontent docs at `/external/purplecontent/docs`. **Enterprise**: -- Dedicated infrastructure - Custom SLA agreements - Advanced security features - White-label options -- Premium support +- Premium support options? ### Account Setup @@ -207,310 +201,6 @@ async function bulkRegisterDevices(serialNumbers, setupId, accessToken) { } ``` -## Content Management - -### Content Library Organization - -BSN.cloud organizes content in a virtual file system: - -``` -/Root -├── Images -│ ├── Backgrounds -│ └── Logos -├── Videos -│ ├── Promotional -│ └── Instructional -└── Presentations - ├── Retail - └── Corporate -``` - -Navigate and manage content via API: - -```javascript -// List content in a folder -async function listContent(virtualPath, accessToken) { - const encodedPath = encodeURIComponent(virtualPath); - const response = await fetch( - `https://api.bsn.cloud/2020/10/REST/Content/Root/${encodedPath}/`, - { - headers: { 'Authorization': `Bearer ${accessToken}` } - } - ); - - return await response.json(); -} -``` - -### Media Upload and Storage - -Upload content files to BSN.cloud: - -```javascript -// Upload content file -async function uploadContent(file, virtualPath, accessToken) { - const formData = new FormData(); - formData.append('file', file); - formData.append('path', virtualPath); - - const response = await fetch('https://api.bsn.cloud/upload', { - method: 'POST', - headers: { 'Authorization': `Bearer ${accessToken}` }, - body: formData - }); - - return await response.json(); -} -``` - -Storage considerations: -- Maximum file size: 5GB per file -- Supported formats: All BrightSign-compatible media types -- Storage quota based on subscription tier -- CDN caching for optimized delivery - -### Content Versioning - -BSN.cloud maintains content version history: - -```javascript -// Retrieve content metadata including version info -async function getContentInfo(contentId, accessToken) { - const response = await fetch( - `https://api.bsn.cloud/2020/10/REST/Content/${contentId}/`, - { - headers: { - 'Authorization': `Bearer ${accessToken}`, - 'Accept': 'application/json' - } - } - ); - - const content = await response.json(); - // Returns: { id, name, version, uploadDate, hash, size, ... } - return content; -} -``` - -### Metadata Management - -Add custom metadata tags to content: - -```javascript -// Add tags to content -async function addContentTags(contentId, tags, accessToken) { - const response = await fetch( - `https://api.bsn.cloud/2020/10/REST/Content/${contentId}/Tags/`, - { - method: 'POST', - headers: { - 'Authorization': `Bearer ${accessToken}`, - 'Content-Type': 'application/json' - }, - body: JSON.stringify(tags) - } - ); - - return response.status === 204; // Success returns 204 No Content -} - -// Example usage -await addContentTags(123, { - 'Category': 'Promotional', - 'Season': 'Winter', - 'Region': 'Northeast' -}, token); -``` - -### Content Distribution - -BSN.cloud uses CDN-based distribution: - -- Content is cached at edge locations globally -- Players download from nearest CDN node -- Supports progressive download for large files -- Bandwidth throttling available to manage network load -- Delta updates minimize data transfer - -## Presentation Creation - -### BrightAuthor:connected - -BrightAuthor:connected is the desktop authoring tool for BSN.cloud: - -**Key Features**: -- Visual timeline-based editing -- Multi-zone layout support -- Interactive state machine creation -- Live data feed integration -- Direct publishing to BSN.cloud - -**Workflow**: -1. Launch BrightAuthor:connected -2. Sign in with BSN.cloud credentials -3. Create or open presentation -4. Add media zones and content -5. Configure interactivity and transitions -6. Publish to BSN.cloud network - -### Web-Based Authoring - -BSN.cloud provides web-based presentation editing: - -- Template-based creation -- Drag-and-drop interface -- Preview before deployment -- Mobile-friendly interface -- Collaboration features - -### Interactive Presentations - -Create interactive experiences: - -```javascript -// Example presentation with interactive zones -const presentation = { - name: 'Interactive Retail Display', - zones: [ - { - id: 'video_zone', - type: 'VideoOrImages', - width: 1920, - height: 1080, - playlist: [ - { type: 'video', contentId: 456 } - ] - }, - { - id: 'touch_zone', - type: 'EnhancedAudio', - width: 400, - height: 1080, - enableTouch: true, - events: [ - { - trigger: 'touch', - action: 'transitionToState', - targetState: 'product_details' - } - ] - } - ] -}; -``` - -### Multi-Zone Layouts - -Define complex screen layouts: - -```javascript -// Create multi-zone presentation -async function createPresentation(presentationData, accessToken) { - const response = await fetch( - 'https://api.bsn.cloud/2020/10/REST/Presentations/', - { - method: 'POST', - headers: { - 'Authorization': `Bearer ${accessToken}`, - 'Content-Type': 'application/json' - }, - body: JSON.stringify(presentationData) - } - ); - - return await response.json(); -} -``` - -### Scheduling and Playlists - -Schedule content playback: - -- **Time-based scheduling**: Play content at specific times -- **Day-part scheduling**: Different content for different times of day -- **Date ranges**: Seasonal or promotional content -- **Dynamic playlists**: Content based on data feeds or tags - -## Remote Deployment - -### Publishing Workflows - -Deploy presentations to players: - -1. **Create/Update Presentation**: Author or modify content -2. **Assign to Players**: Target specific devices or groups -3. **Schedule Deployment**: Immediate or scheduled publication -4. **Monitor Progress**: Track download and activation status - -```javascript -// Publish presentation to devices -async function publishPresentation(presentationId, deviceIds, accessToken) { - // Assign presentation to devices - for (const deviceId of deviceIds) { - await fetch( - `https://api.bsn.cloud/2020/10/REST/Devices/${deviceId}/`, - { - method: 'PATCH', - headers: { - 'Authorization': `Bearer ${accessToken}`, - 'Content-Type': 'application/json' - }, - body: JSON.stringify([ - { - op: 'replace', - path: '/currentPresentation', - value: presentationId - } - ]) - } - ); - } -} -``` - -### Content Synchronization - -Players synchronize content automatically: - -- **Check-in Interval**: Players contact BSN.cloud periodically (default: 15 minutes) -- **Change Detection**: Players download only modified content -- **Hash Verification**: Content integrity verified using SHA256 -- **Retry Logic**: Failed downloads automatically retry with exponential backoff - -### Bandwidth Management - -Control network bandwidth usage: - -- **Download Scheduling**: Limit downloads to off-peak hours -- **Rate Limiting**: Throttle download speeds -- **Progressive Download**: Stream large files while playing -- **Bandwidth Monitoring**: Track data usage per device - -### Progressive Downloads - -For large media files: - -```javascript -// Configure progressive download settings -const playerSettings = { - downloadSettings: { - enableProgressiveDownload: true, - bufferSize: 10485760, // 10MB buffer - maxConcurrentDownloads: 2 - } -}; -``` - -### Offline Fallback - -Players continue operation during network outages: - -- **Local Caching**: All content cached on storage -- **Offline Mode**: Players continue with last successful content -- **Reconnection**: Automatic reconnection when network restored -- **Sync on Reconnect**: Download pending updates when back online - ## Device Management ### Remote Monitoring @@ -678,236 +368,15 @@ async function rebootDevice(serial, accessToken) { } ``` -### Content Operations - -Manage content programmatically: - -```javascript -// List all content with filtering -async function listContent(filter, accessToken) { - const params = new URLSearchParams(); - if (filter) params.append('filter', filter); - - const response = await fetch( - `https://api.bsn.cloud/2020/10/REST/Content/?${params}`, - { - headers: { 'Authorization': `Bearer ${accessToken}` } - } - ); - - const result = await response.json(); - // Returns paged list with: items[], marker, isTruncated - return result; -} - -// Delete content -async function deleteContent(contentId, accessToken) { - const response = await fetch( - `https://api.bsn.cloud/2020/10/REST/Content/${contentId}/`, - { - method: 'DELETE', - headers: { 'Authorization': `Bearer ${accessToken}` } - } - ); - - return response.status === 204; // Success returns 204 No Content -} -``` - ### Webhook Integration BSN.cloud can send webhooks for events: - **Device Events**: Online/offline, errors -- **Content Events**: Upload complete, sync status -- **Presentation Events**: Deployment status - **System Events**: Network changes, user actions Configure webhooks in account settings or via API. -## Live Content - -### Live Data Feeds - -Integrate real-time data into presentations: - -**Live Text Feeds**: -```javascript -// Create live text feed -const textFeed = { - name: 'Stock Ticker', - url: 'https://api.example.com/stock-prices', - refreshInterval: 60, // seconds - format: 'json', - dataPath: '$.stocks[0].price' -}; -``` - -**Live Media Feeds**: -```javascript -// Create live media feed -const mediaFeed = { - name: 'Promotional Videos', - url: 'https://api.example.com/latest-videos', - refreshInterval: 300, - format: 'mrss' // Media RSS -}; -``` - -### Dynamic Playlists - -Create playlists that update automatically: - -- **Tag-based Playlists**: Include content with specific tags -- **RSS/MRSS Feeds**: Import content from external feeds -- **Data-driven Playlists**: Content selection based on data sources - -```javascript -// Create dynamic playlist based on tags -const dynamicPlaylist = { - type: 'tagged', - filter: 'Category eq "Seasonal" and Season eq "Winter"', - sortOrder: 'uploadDate DESC', - maxItems: 10 -}; -``` - -### Real-time Updates - -Push updates to players: - -- **Instant Sync**: Trigger immediate content synchronization -- **Emergency Messages**: Override current playback -- **Live Overlays**: Update ticker text, prices, or alerts - -### WebSocket Connections - -Maintain persistent connections for real-time control: - -```javascript -// Establish WebSocket connection to device -class DeviceConnection { - constructor(serial, accessToken) { - this.ws = new WebSocket(`wss://dws.bsn.cloud/device/${serial}`); - this.token = accessToken; - - this.ws.onopen = () => { - console.log('Connected to device:', serial); - }; - - this.ws.onmessage = (event) => { - const message = JSON.parse(event.data); - this.handleMessage(message); - }; - } - - sendCommand(method, path, body = null) { - this.ws.send(JSON.stringify({ - method, - path, - auth: this.token, - body - })); - } - - handleMessage(message) { - console.log('Received:', message); - } -} -``` - -### Server-Sent Events - -Alternative to WebSockets for one-way updates: - -```javascript -// Listen for device events -const eventSource = new EventSource( - `https://api.bsn.cloud/events/devices/${deviceId}`, - { - headers: { 'Authorization': `Bearer ${accessToken}` } - } -); - -eventSource.addEventListener('status', (event) => { - const status = JSON.parse(event.data); - console.log('Device status update:', status); -}); -``` - -## Analytics & Reporting - -### Playback Reports - -Track content playback: - -- **Play Count**: Number of times content played -- **Play Duration**: Total playback time -- **Completion Rate**: Percentage of viewers who watched completely -- **Device Breakdown**: Playback by device/location - -### Device Analytics - -Monitor device performance: - -- **Uptime**: Device availability percentage -- **Network Usage**: Bandwidth consumption -- **Storage Usage**: Storage capacity trends -- **Error Rates**: Frequency of errors by type - -### Content Performance - -Analyze content effectiveness: - -- **Popular Content**: Most-played media -- **Engagement Metrics**: Interaction rates (for touch displays) -- **Geographic Performance**: Content performance by region -- **Time-based Analysis**: Performance by time of day/week - -### Custom Events - -Log custom events for business intelligence: - -```javascript -// Log custom event from player -// In BrightScript on player: -function LogCustomEvent(eventName as String, data as Object) - beacon = CreateObject("roBeacon", "https://analytics.bsn.cloud/events") - beacon.PostEvent(eventName, data) -end function - -// Example usage -LogCustomEvent("ProductViewed", { - productId: "12345", - category: "Electronics", - timestamp: CreateObject("roDateTime").ToISOString() -}) -``` - -### Data Export - -Export analytics data: - -```javascript -// Export device analytics -async function exportAnalytics(startDate, endDate, accessToken) { - const params = new URLSearchParams({ - startDate: startDate.toISOString(), - endDate: endDate.toISOString(), - format: 'csv' - }); - - const response = await fetch( - `https://api.bsn.cloud/analytics/export?${params}`, - { - headers: { 'Authorization': `Bearer ${accessToken}` } - } - ); - - return await response.blob(); -} -``` - ## Advanced Features ### Tagging and Filtering @@ -1115,12 +584,6 @@ BSN.cloud supports GDPR requirements: - Confirm player is registered in BSN.cloud - Check device activation status -**Content Not Downloading**: -- Verify storage space on player -- Check content permissions -- Confirm presentation assignment -- Review download logs - **API Authentication Failures**: - Verify client credentials - Check token expiration @@ -1166,41 +629,10 @@ function TestBSNConnectivity() as Boolean end function ``` -### Sync Problems - -Troubleshoot synchronization issues: - -1. **Check Device Status**: Verify device is online -2. **Review Error Logs**: Check for download failures -3. **Verify Content Hashes**: Ensure content integrity -4. **Force Sync**: Trigger manual synchronization -5. **Clear Cache**: Reset local content cache if corrupted - -```javascript -// Force device sync -async function forceSyncDevice(deviceId, accessToken) { - const ws = new WebSocket(`wss://dws.bsn.cloud/device/${deviceId}`); - - ws.onopen = () => { - ws.send(JSON.stringify({ - method: 'POST', - path: '/SynchronizeNow', - auth: accessToken - })); - }; -} -``` - ### Performance Optimization Optimize BSN.cloud integration: -**Content Optimization**: -- Compress images and videos -- Use appropriate resolution for display -- Leverage progressive download for large files -- Cache frequently accessed content - **API Optimization**: - Implement caching for API responses - Use batch operations when possible @@ -1239,7 +671,6 @@ To work with BSN.cloud integration, you need: - Display(s) connected to players **Software**: -- BrightAuthor:connected (for presentation authoring) - Web browser (for BSN.cloud web interface) - Development tools (for API integration) @@ -1271,51 +702,10 @@ Allow UDP port 53 - Use VLANs to separate traffic - Implement network monitoring -### Content Optimization for Cloud Delivery - -**Video Encoding**: -``` -Recommended settings: -- Container: MP4 -- Video codec: H.264 (Main or High profile) -- Audio codec: AAC -- Bitrate: Match display resolution (e.g., 10 Mbps for 1080p) -- Keyframe interval: 2 seconds -``` - -**Image Optimization**: -- Use JPEG for photos (80-90% quality) -- Use PNG for graphics with transparency -- Resize to native display resolution -- Optimize file size with tools like ImageOptim - -**File Organization**: -- Use descriptive filenames -- Organize into logical folders -- Apply consistent tagging -- Document content purpose and usage - ### Backup and Recovery Strategies -**Content Backup**: -```javascript -// Automated content backup -async function backupContent(accessToken) { - const content = await listAllContent(accessToken); - - for (const item of content) { - const fileResponse = await fetch(item.downloadUrl); - const blob = await fileResponse.blob(); - - // Save to local backup storage - await saveToBackup(`backup/${item.path}`, blob); - } -} -``` - **Configuration Backup**: - Export device configurations regularly -- Backup presentation definitions - Save network settings - Document custom integrations @@ -1365,12 +755,6 @@ setInterval(() => monitorDevices(token), 300000); - Consider enterprise tier for large deployments - Implement efficient querying and filtering -**Content Management**: -- Establish content approval workflows -- Implement content lifecycle policies -- Archive obsolete content -- Monitor storage usage trends - **Performance Considerations**: - Cache API responses - Batch operations when possible @@ -1389,10 +773,7 @@ BSN.cloud provides a comprehensive cloud platform for managing BrightSign digita - **Centralized Management**: Control all devices from a single interface - **Automated Provisioning**: Streamline device deployment with B-Deploy -- **Content Distribution**: Efficient CDN-based content delivery - **Remote Control**: Manage devices from anywhere via APIs -- **Live Content**: Integrate real-time data and dynamic content -- **Analytics**: Track performance and engagement - **Security**: Enterprise-grade security and compliance - **Scalability**: Supports networks from single displays to thousands diff --git a/documentation/part-5-bsn-cloud/02-automated-provisioning.md b/documentation/part-5-bsn-cloud/02-automated-provisioning.md index 3cf0b1f..f318290 100644 --- a/documentation/part-5-bsn-cloud/02-automated-provisioning.md +++ b/documentation/part-5-bsn-cloud/02-automated-provisioning.md @@ -294,7 +294,6 @@ class "brightsign-players" { ## Next Steps - [Per-Player Control](03-per-player-control.md) -- Remote commands and monitoring -- [BSN.content](04-bsn-content.md) -- Content management and scheduling - [Code Examples](examples/README.md) -- Recovery server implementations --- diff --git a/documentation/part-5-bsn-cloud/04-bsn-content.md b/documentation/part-5-bsn-cloud/04-bsn-content.md deleted file mode 100644 index 29d7168..0000000 --- a/documentation/part-5-bsn-cloud/04-bsn-content.md +++ /dev/null @@ -1,11 +0,0 @@ -# BSN.content - -[← Back to Part 5: BSN Cloud](README.md) | [↑ Main](../../README.md) - ---- - -*Content coming soon.* - ---- - -[↑ Part 5: BSN Cloud](README.md) diff --git a/documentation/part-5-bsn-cloud/README.md b/documentation/part-5-bsn-cloud/README.md index b532e35..9502ed0 100644 --- a/documentation/part-5-bsn-cloud/README.md +++ b/documentation/part-5-bsn-cloud/README.md @@ -35,7 +35,6 @@ BSN.cloud is BrightSign's cloud-based content management and device monitoring p | 1 | [Integrating with BSN.cloud](01-integrating-with-bsn-cloud.md) | Platform overview and authentication | | 2 | [Automated Provisioning](02-automated-provisioning.md) | Bulk device setup and registration | | 3 | [Per-Player Control](03-per-player-control.md) | Remote commands and monitoring | -| 4 | [BSN.content](04-bsn-content.md) | Content management and scheduling | --- @@ -47,7 +46,6 @@ Python and JavaScript examples for cloud integration: |----------|-------------| | [Provisioning](examples/provisioning/) | Bulk setup, auto-registration, fleet configuration | | [Player Control](examples/player-control/) | Reboot, firmware updates, status monitoring | -| [Content Management](examples/content-management/) | Upload, scheduling, synchronization | [**Browse All Examples →**](examples/README.md) diff --git a/documentation/part-5-bsn-cloud/examples/README.md b/documentation/part-5-bsn-cloud/examples/README.md index 9caaf79..cfabef4 100644 --- a/documentation/part-5-bsn-cloud/examples/README.md +++ b/documentation/part-5-bsn-cloud/examples/README.md @@ -18,11 +18,6 @@ Remote commands and device monitoring. *Examples coming soon.* -### [Content Management](content-management/) -Content upload, scheduling, and synchronization. - -*Examples coming soon.* - --- [← Back to Part 5](../README.md) diff --git a/howto-articles/10-setting-up-bsn-cloud.md b/howto-articles/10-setting-up-bsn-cloud.md index b7bea40..80c4328 100644 --- a/howto-articles/10-setting-up-bsn-cloud.md +++ b/howto-articles/10-setting-up-bsn-cloud.md @@ -14,7 +14,6 @@ This guide walks you through connecting your BrightSign player to BSN.cloud, Bri - Registering players with BSN.cloud - Automatic provisioning methods (mDNS, DHCP Option 43) - Using Remote DWS for cloud-based management -- Deploying content through BSN.cloud - Monitoring player status and diagnostics ### BSN.cloud Benefits @@ -22,9 +21,7 @@ This guide walks you through connecting your BrightSign player to BSN.cloud, Bri | Feature | Description | |---------|-------------| | **Remote Management** | Control players anywhere via web interface | -| **Content Deployment** | Push content updates without physical access | | **Device Monitoring** | Real-time status, health checks, diagnostics | -| **Scheduling** | Time-based content scheduling | | **Grouping** | Organize players by location, purpose, or network | | **REST APIs** | Programmatic control for custom integrations | @@ -381,72 +378,7 @@ End Sub --- -## Part 5: Content Deployment - -### Using BSN.cloud Web Interface - -1. **Upload Content**: - - Navigate to **Library** > **Media** - - Click **Upload** and select files - - Wait for processing to complete - -2. **Create Presentation**: - - Go to **Presentations** - - Click **Create Presentation** - - Add media to timeline - - Configure transitions and timing - -3. **Publish to Players**: - - Select your presentation - - Click **Publish** - - Choose target players or groups - - Confirm deployment - -### Using Sync Spec for Custom Deployment - -For programmatic content deployment, use sync specs: - -```json -{ - "meta": { - "client": "custom-cms", - "version": "1.0" - }, - "files": { - "download": [ - { - "name": "video1.mp4", - "link": "https://cdn.example.com/content/video1.mp4", - "size": 52428800, - "hash": "sha1:abc123..." - }, - { - "name": "playlist.json", - "link": "https://cdn.example.com/content/playlist.json", - "size": 1024, - "hash": "sha1:def456..." - } - ], - "delete": [ - "old-video.mp4" - ] - } -} -``` - -Configure player to use sync spec: - -```brightscript -Sub ConfigureSyncSpec() - reg = CreateObject("roRegistrySection", "networking") - reg.Write("nu", "https://content.example.com/sync-spec.json") - reg.Flush() -End Sub -``` - ---- - -## Part 6: Monitoring and Diagnostics +## Part 5: Monitoring and Diagnostics ### Player Status Monitoring @@ -621,7 +553,6 @@ app.listen(80, () => { | mDNS not working | Multicast disabled | Enable multicast on network switches | | Option 43 not received | DHCP misconfigured | Verify DHCP class match and TLV encoding | | Player shows offline | WebSocket connection lost | Check network stability, firewall rules | -| Content not updating | Sync spec URL wrong | Verify `nu` registry key | ### Network Requirements @@ -643,14 +574,11 @@ Ensure these endpoints are accessible: 3. **Remote Management**: Use the BSN.cloud REST API to list devices and send a reboot command -4. **Content Deployment**: Create a sync spec and deploy content to multiple players - --- ## Next Steps - [Implementing Live Data Feeds](11-implementing-live-data-feeds.md) - Display real-time information -- [Fetching Remote Content](08-fetching-remote-content.md) - Download and cache content - [Integrating with REST APIs](09-integrating-rest-apis.md) - Consume external APIs ---