/technology/modules/ · linkedin Shipping
Runs a LinkedIn Company Page from the harness: connect once over OAuth, then create, schedule, edit and delete posts, upload media, and address showcase pages.
What it is
linkedin.
Connect a page once over OAuth and the module holds the tokens; after that it creates, schedules, edits and deletes posts, uploads media, and addresses showcase pages as well as the main one. Everything except the OAuth callback sits under /v1/linkedin/admin/* behind an admin token.
It is not on crates.io, and that is a rule rather than an oversight. Harness ADR 0005: a crate whose name starts fz- is not published, and arrives as a pinned git dependency. This one holds long-lived credentials for our own pages, so publishing it would put a credential-bearing integration on crates.io for the convenience of nobody. Its source is in the harness repository with every other crate — ADR 0013, one repository — so the button above opens all of it.
Crate
fz-module-linkedin · not on crates.io. A pinned git dependency, harness ADR 0005. Source in the harness repository.
Ports
Database · Clock · Signer · HttpClient
Routes
POST /v1/linkedin/admin/connect— returns an authorize URL and a single-use stateGET /v1/linkedin/callback— public — spends the state, exchanges the code, stores sealed tokensGET /v1/linkedin/admin/status— account, scopes, both expiries, today's request budgetDELETE /v1/linkedin/admin/account— forgets the tokens; keeps the post historyGET /v1/linkedin/admin/pages— pages and showcases, with roles.?kind=showcasefiltersPOST /v1/linkedin/admin/pages/{org}/images— raw image body, returns an assetPOST /v1/linkedin/admin/pages/{org}/posts— creates or schedules a postPATCH /v1/linkedin/admin/posts/{id}— commentary, CTA label, landing page
It is the module Factory Zero runs for its own pages.