Skip to main content

Social Instagram Publish Migration

Overview

SocialInstagramPublishModule is a retired compatibility module. Version 2.0.0 is hidden from Workflow Studio and never resolves an OpenAPI server, reads an IntegrationAccount, creates a media container, publishes media, fetches a permalink, or changes workflow state.

The former implementation duplicated InstagramPublishModule, exposed zero catalog inputs and outputs, treated a two-write provider sequence as idempotent, and allowed an attached OpenAPI specification to replace the Meta Graph base URL before transmitting the bound access token. Its synchronous execution path could also return without performing the documented publish. The class and Spring bean names remain unchanged so saved tasks can be identified and migrated without restoring those behaviors.

Usage

Do not add SocialInstagramPublishModule to a new workflow. For an existing task:

  1. Record the intended media type, source URL, caption, and publication timing without copying credentials.
  2. Remove any attached provider OpenAPI specification or custom server override from the migration plan.
  3. Review the currently deployed InstagramPublishModule metadata and approved provider documentation before choosing it as the replacement.
  4. Create a new replacement task and bind a least-privilege READY Meta IntegrationAccount through its documented secure fields.
  5. Test one authorized non-production publication and reconcile provider state before retrying any ambiguous write.
  6. Remove the retired task only after the replacement is verified.

Inputs

The compatibility shell recognizes four legacy migration hints but does not parse, log, fetch, store, or transmit them.

NameTypeRequiredVersion 2.0.0 behavior
media_typestringNoIgnored; no IMAGE or VIDEO operation is selected.
source_urlstringNoIgnored; the URL is never fetched or sent to a provider.
captionstringNoIgnored; the text is never logged or transmitted.
schedule_timestringNoIgnored; no container or scheduled publication is created.

Outputs

Direct execution always returns:

{
"status": "error",
"error": {
"code": "MODULE_RETIRED",
"message": "SocialInstagramPublishModule is retired; migrate deliberately to InstagramPublishModule",
"retryable": false,
"migrationTargets": ["InstagramPublishModule"],
"requiredAction": "Create a reviewed replacement task; do not copy raw credentials or OpenAPI server overrides"
}
}

The response never contains media URLs, captions, access tokens, account identifiers, provider responses, container IDs, media IDs, permalinks, or exception text.

IntegrationAccount Requirements

The retired module accepts, resolves, and decrypts no IntegrationAccount. No account field re-enables provider access.

For a replacement, follow that module's current documented account contract. Keep the Meta access token and Instagram Business account identifier in encrypted account fields, require the documented readiness state, and use the minimum content-publishing scopes. Never copy a token into workflow input, an OpenAPI server definition, a URL, a log, or a migration note.

Configuration

Direct metadata lookup retains four advanced legacy fields so old task shapes remain recognizable:

FieldLegacy purposeVersion 2.0.0 behavior
media_typeSelected image or video publishing.Never selects an operation.
source_urlPointed Meta at a public media URL.Never fetched or transmitted.
captionSupplied post text.Never logged or transmitted.
schedule_timeRequested a later publication.Never parsed or scheduled.

The module is discoverable=false; Workflow Studio does not offer it for new tasks.

Operations

Version 2.0.0 implements one deterministic compatibility operation: reject direct execution with MODULE_RETIRED and name InstagramPublishModule as the migration candidate.

Migration is not automatic. The replacement is a separate module with its own deployed metadata, account contract, validation, and non-idempotent provider-write boundary. A source merge does not prove that the replacement version is deployed in Workflow Studio.

Errors and Failure Modes

ConditionResultRecovery
Retired task executesMODULE_RETIRED, not retryableCreate and test a reviewed replacement task.
Legacy OpenAPI server is presentIgnored; no request or token transmission occursDo not copy the server override to the replacement.
Replacement validation failsNo provider request should be sentCorrect the named media, identity, or account field.
Replacement write is ambiguousProvider commit state is unknownInspect Instagram state before one deliberate retry.
Live metadata still reports v1Runtime deployment has not caught up with sourceKeep the task disabled until the normal backend release.

Example

Legacy task configuration:

{
"media_type": "IMAGE",
"source_url": "https://cdn.example.com/releases/launch.png",
"caption": "Release notes are live"
}

Expected result:

{
"status": "error",
"error": {
"code": "MODULE_RETIRED",
"retryable": false,
"migrationTargets": ["InstagramPublishModule"]
}
}

No media container or Instagram post is created. The operator must build and verify a separate replacement task.

Notes

  • Pagination: not applicable; the compatibility shell performs no provider read.
  • Limits: legacy values are ignored rather than truncated, rendered, stored, or transmitted.
  • Idempotency: repeated execution returns the same error shape and has no side effect.
  • API constraints: no Meta Graph API version, server, operation ID, or response is resolved.
  • Destructive behavior: none. The shell cannot create, schedule, publish, update, or delete media.
  • Observability: one bounded warning records that execution was blocked; inputs and credentials are omitted.
  • Runtime boundary: merged source, published documentation, public launch content, and deployed /v1/modules/metadata are separate states.