File Import

Open source EmDash

Imports CSV, JSON, NDJSON, and XML files into EmDash collections, pasted or linked from Google Sheets, Google Drive, GitHub, or Dropbox, with field mapping and a log of every run.

Version 1.0.0

About this project

Paste a file, or link to one on Google Sheets, Google Drive, GitHub, or Dropbox, and map its columns to a collection. Rows are matched to entries by a unique key, so every run creates what is new, updates what changed, and leaves the rest alone. Every run is logged, with the rows that failed and why.

File Import is free, with no license key. It reads linked files from a fixed list of file hosts only. To import from any URL, see Pinnacle Feed Import.

Free features

  • CSV, JSON, NDJSON, and XML files
  • Links from Google Sheets, Google Drive, GitHub, and Dropbox
  • Any number of imports, run by hand
  • Dry runs and a mapping preview
  • One daily or weekly schedule
  • Create, update, and skip unchanged
  • A log of row errors for every run

Install on EmDash

  1. In your EmDash admin, open Registry.
  2. Search for pinnacle-file-import and open its page.
  3. Review the permissions it asks for, then select Install and confirm.

Install from npm

Package: @pinnacleplugins/emdash-file-import

  1. Run npm install @pinnacleplugins/emdash-file-import in your site's project.
  2. For native mode, add the plugin to plugins: [...] in astro.config.mjs. It then runs in your site's own process, so use native mode only on hosts you trust with in-process code.
  3. To keep it in the sandbox instead, add it to sandboxed: [...] and set a sandbox runner, as the plugin's README describes.

Install from the EmDash registry, or add the npm package to your site. Registry installs run in the EmDash plugin sandbox, which needs the @emdash-cms/sandbox-workerd runner on Node, or the Workers Paid plan with a Worker Loader binding named LOADER on Cloudflare. On Node, the npm package can also run in your site's own process.

About this project

  • For EmDash
  • Version 1.0.0
  • Built by Coding Chicken

Building something similar?

We take on a small number of engagements each year. If you have a hard system that needs senior ownership, let's talk.

Start a conversation →