feat: Add Ghost CMS integration with native scheduling support#1330
Closed
siva-sub wants to merge 8 commits into
Closed
feat: Add Ghost CMS integration with native scheduling support#1330siva-sub wants to merge 8 commits into
siva-sub wants to merge 8 commits into
Conversation
Ghost Admin API requires updated_at timestamp for post edits to prevent UPDATE_COLLISION (409) errors. The fix fetches current post state before editing to obtain the correct updated_at value. - update() method: fetch current post, include updated_at in edit - changeStatus() method: fetch current post, include updated_at in edit
- Add member_status parameter for preview (public/members/paid) - Add include parameter for tags, authors, tiers in preview response - Fetch and return theme CSS variables from custom_theme_settings API - Add previewUrlWithParams for member status testing - Implement three preview modes: static, live, member - Add theme presets for Casper, Casper Dark, Edition, Liebling - Add member upsell overlay simulation for member preview mode
- Fixed credentials=*** and authToken=*** corrupted patterns - Fixed this.p...en) → this.parseCredentials(token) - Fixed this.g...ey) → this.generateAuthToken(credentials.adminApiKey) - Renamed uploadImage @tool method to uploadImageBase64 to avoid conflict with private uploadImage - Fixed credentials.apiKey → credentials.adminApiKey property access
- Add temporal, temporal-postgresql, temporal-elasticsearch containers - Fix dynamic config format for Temporal (use array with constraints) - Connect postiz container to temporal-network for workflow communication
When a provider supports native scheduling (like Ghost), the Temporal workflow now posts immediately and lets the provider handle scheduling. This allows scheduled posts to appear in Ghost CMS immediately with 'scheduled' status instead of waiting until the publish date. Changes: - Add supportsNativeScheduling property to SocialAbstract base class - Add supportsNativeScheduling to SocialProvider interface - Set supportsNativeScheduling=true in GhostProvider - Add supportsNativeScheduling activity to check provider capability - Update post workflow to skip sleep for native scheduling providers For Ghost: scheduled posts now appear in the Ghost dashboard immediately as 'scheduled' status, and Ghost handles the actual publishing at the configured time. fixes gitroomhq#1324 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
Someone is attempting to deploy a commit to the Listinai Team on Vercel. A member of the Team first needs to authorize it. |
|
🚧 Skipped: PR exceeds review size limit. Please split into smaller PRs and re-run. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds complete Ghost CMS integration to Postiz, enabling users to publish and manage content on their Ghost blogs directly from the Postiz platform.
Key Features
Native Scheduling Support: Ghost posts scheduled in Postiz now appear immediately in Ghost CMS with
scheduledstatus, instead of waiting for Temporal to publish at the scheduled time. This provides better visibility and management in Ghost.Full CRUD Operations: Create, read, update, and delete Ghost posts through Postiz API.
Ghost Tools: Comprehensive set of tools for Ghost management via the integration-trigger endpoint:
tags- List all tagsauthors- List all authorstiers- List membership tiersnewsletters- List newslettersposts/listPosts- List postsgetPost/getPostBySlug- Get specific postscreatePost/updatePost/deletePost- Post managementchangeStatus- Change post status (draft/published/scheduled)preview- Create preview draftsTechnical Changes
supportsNativeScheduling = falsepropertysupportsNativeScheduling?: booleansupportsNativeScheduling = truesupportsNativeScheduling(integration)activityHow Native Scheduling Works
Before (Temporal Wait):
After (Native Scheduling):
supportsNativeSchedulingfor Ghost →truestatus: 'scheduled'andpublished_atApology
I apologize for the previous PR (#1324) being closed as spam. This was unintentional and I appreciate the maintainers' patience. This is a legitimate feature contribution.
Test Plan
🤖 Generated with Claude Code