Skip to content
Data Import Management

Data Import Management

Data Import Management imports external data, such as CSV, JSON or PDF forms, into your application. A parser reads the raw data into entries of a staging, a draft batch. In the admin UI an administrator maps the source fields to the target fields, reviews, corrects, confirms or ignores single entries and finally starts the import. An importer writes the entries into your domain.

Data import

Enable

import cfgdataimport "go.wdy.de/nago/application/dataimport/cfg"

imports := std.Must(cfgdataimport.Enable(cfg)) // cfgdataimport.Management

cfgdataimport.Management has the fields UseCases dataimport.UseCases and Pages uidataimport.Pages.

Parsers and importers are not registered automatically. Register the built-in ones and your own at startup:

import (
	"go.wdy.de/nago/application/dataimport/importer/userimporter"
	"go.wdy.de/nago/application/dataimport/parser/csv"
)

option.MustZero(imports.UseCases.RegisterParser(user.SU(), csv.NewParser()))
option.MustZero(imports.UseCases.RegisterImporter(user.SU(), userimporter.NewImporter(std.Must(cfg.UserManagement()).UseCases)))

Built-in parsers: csv.NewParser(), json.NewParser() (also JSON lines) and pdf.NewParser() (PDF AcroForms), in go.wdy.de/nago/application/dataimport/parser/.... The built-in importer userimporter.NewImporter creates users. Implement parser.Parser or importer.Importer for your own formats and targets.

Use cases

Use caseDescription
RegisterParser, RegisterImporterRegister a parser or importer.
FindParsers, FindImporters, FindImporterByIDList the registered parsers and importers.
CreateStagingCreates a staging for an importer.
FindStagingByID, FindStagingsForImporterLoad stagings.
DeleteStagingDeletes a staging and its entries.
ParseParses raw data into entries of a staging.
FilterEntries, FindEntryByIDLoad entries of a staging.
UpdateStagingTransformationSets the mapping from source fields to target fields.
UpdateEntryConfirmationMarks an entry as reviewed.
UpdateEntryIgnoredExcludes an entry from the import.
UpdateEntryTransformedOverrides the transformed result of an entry.
CalculateStagingReviewStatusCounts total, confirmed, ignored and imported entries.
ImportRuns the importer for a staging.

Permissions

PermissionAllows to
nago.dataimport.parser.registerregister parsers
nago.dataimport.importer.registerregister importers
nago.dataimport.findparserslist parsers
nago.dataimport.findimporterlist importers
nago.dataimport.createstagingcreate stagings
nago.dataimport.findstagingview stagings
nago.dataimport.deletestagingdelete stagings
nago.dataimport.parseparse data
nago.dataimport.filterentrieslist entries
nago.dataimport.findentrybyidview an entry
nago.dataimport.updatestagingtransformationchange the field mapping
nago.dataimport.entry.updateconfirmationconfirm entries
nago.dataimport.entry.updateignoredignore entries
nago.dataimport.entry.updatetransformedoverride entries
nago.dataimport.entry.calculatestagingstatuscalculate the review status
nago.dataimport.importrun the import

UI

The admin center shows a card per registered importer in the group Daten Importe. It leads to admin/data/stagings?importer=<id>; the other pages are admin/data/select-parser, admin/data/staging and admin/data/entry.

Related