Datasets

Datasets are the core unit of content in PortalJS Cloud. Each dataset has metadata (title, description, tags, license, organization, group) and one or more resources (the actual files or URLs).

Every dataset must belong to exactly one organization. The organization owns the dataset and determines who can edit or delete it — see Permissions below.

The dataset metadata schema is based on the W3C DCAT vocabulary (Data Catalog Vocabulary), so datasets you publish here are interoperable with other DCAT-compatible catalogs. Resource-level schemas follow the Frictionless Table Schema specification.

See Metadata reference for every available field.

This page covers everything you can do with datasets and their resources.

Browse datasets

  1. In the sidebar, click Datasets.

    placeholder: datasets list

  2. The table shows each dataset's title, name, description, visibility (Public/Private), resource count, public link, and an Edit action.

  3. Use the search bar above the table to filter by query, organization, group, or tag.

    placeholder: dataset search filters

  4. Click View online on a row to open the dataset's public page in a new tab. Private datasets show "No online link" instead.

Create a dataset

PortalJS Cloud uses a two-step wizard: upload files, then edit metadata.

  1. From the Datasets page (or the dashboard), click Add dataset.

    placeholder: add dataset button

  2. Step 1 — Upload files. Add one or more resources to the dataset:

    • Drag and drop files into the upload area, or click to browse. Supported formats include CSV, Excel, JSON, GeoJSON, and more.
    • Or add URLs that point to externally hosted files. Click Add URL to add more URL fields, then Submit.

    placeholder: upload step

  3. PortalJS Cloud parses your files. You will see a toast: "🚀 Metadata generated by AI! Review it before publishing."

  4. Step 2 — Edit metadata. Review and adjust the auto-generated metadata. The most important fields:

    • Title and Name (URL-safe slug).
    • Description.
    • Organizationrequired. The dataset is owned by this organization, and only its members can edit it (see Permissions). The dropdown lists only organizations you belong to.
    • Tags, Groups.
    • Visibility (Public/Private), Language, plus DCAT fields like Rights, Coverage, Contact point, etc.

    For every available field, see Metadata reference.

    placeholder: edit metadata step

  5. Click Publish to create the dataset.

Edit a dataset

  1. From the Datasets list, click Edit on the dataset row.

    placeholder: dataset edit link

  2. Update any field on the edit form: title, description, tags, organization, group, visibility, license, custom fields.

  3. Click Save.

Delete datasets

You can delete one or many datasets at once.

  1. On the Datasets list, tick the checkbox to the left of each dataset you want to delete. Use the header checkbox to select all.

    placeholder: select datasets for deletion

  2. Click Delete all in the toolbar that appears above the table.

  3. Confirm. Deleted datasets are removed from both the admin dashboard and the public portal.

Manage resources

Resources are the files (or URLs) attached to a dataset. Open a dataset's resources by clicking the Resources link on its row.

placeholder: resources of a dataset

Add a resource

  1. From the dataset's resources page, click Add resource.

  2. Fill in the form: upload a file or paste a URL, set the resource name, format, description, and any other fields. For the full list of resource fields including the Table Schema, see Resource fields and Table Schema.

    placeholder: add resource form

  3. Click Save. You return to the resources list.

Edit a resource

  1. Click the resource row (or its edit icon) on the resources list.

  2. Adjust fields on the edit form and click Save.

    placeholder: edit resource form

Sort resources

  1. On the resources page, click Sort Resources.

  2. Drag rows up and down to change the order in which resources appear on the public dataset page.

    placeholder: sortable resource list

  3. Save the new order. Click Cancel to discard.

placeholder: sortable resource list

Delete a resource

Delete a resource from inside its edit form, or by selecting it in the resources list (if bulk delete is available). The dataset itself remains.

Permissions

Who can edit or delete a dataset is determined by organization membership, following the standard CKAN role model. Every dataset is owned by one organization; to act on it you must be a member of that organization with a sufficient role.

Role in the owning orgBrowseView private datasetsCreateEditDelete
Not a memberPublic datasets only
MemberYesYes
EditorYesYesYesYesYes
AdminYesYesYesYesYes (plus manage members)
Sysadmin (admin of the main org)All datasets in the portalYesYesYesYes

Practical consequences:

  • If you do not see Edit on a dataset's row, you are not an editor or admin in the dataset's organization.
  • If you cannot select an organization on the create form, you are not a member of any organization with create rights. Ask a sysadmin to add you — see Organizations → Manage members.
  • A dataset cannot be moved to an organization you are not a member of.

For inviting members and assigning roles, see Organizations → Manage members.

Metadata reference

The dataset metadata model is DCAT-based (W3C Data Catalog Vocabulary). Fields shown below are exposed on both the create wizard and the edit form.

Dataset fields

FieldTypeRequiredDescription
TitlestringyesHuman-readable name shown across the portal.
Namestring (slug)yesURL-safe identifier. Must not contain spaces or the . character. Auto-generated from the title; editable.
DescriptiontextnoLong-form description (stored in CKAN as notes).
Organization (owner_org)referenceyesThe organization that owns the dataset. Controls permissions.
Groupslist of referencesnoThematic groups the dataset belongs to. See Groups.
Tagslist of stringsnoFree-form keywords.
Visibility (private)booleannotrue hides the dataset from the public portal. Default: public.
LanguageenumnoOne of EN, FR, ES, DE, IT.
AuthorstringnoName of the dataset author.
Author emailstringnoContact email for the author.
Contact point (DCAT dcat:contactPoint)stringnoPrimary contact for questions about the dataset.
Coverage (DCAT dct:spatial / dct:temporal)stringnoSpatial or temporal coverage description.
Rights (DCAT dct:rights)stringnoStatement of rights, license, or usage terms.
Conforms to (DCAT dct:conformsTo)stringnoStandard or schema the dataset conforms to.
Has version (DCAT dct:hasVersion)stringnoRelated newer version of this dataset.
Is version of (DCAT dct:isVersionOf)stringnoRelated older/parent dataset this is a version of.
Sources (source)list of URLsnoUpstream source URLs the data was derived from.

CKAN allows arbitrary custom fields (extras) too; if your portal has been customized with additional fields, they will appear on the form alongside the standard ones.

Resource fields

A dataset has one or more resources. Each resource has its own metadata.

FieldTypeRequiredDescription
NamestringyesDisplay name of the resource.
FormatstringnoFile format (CSV, JSON, XLSX, GeoJSON, PDF, etc.). Auto-detected from the file; editable.
DescriptiontextnoWhat this resource contains.
URLURLyesEither the upload URL (managed by PortalJS Cloud) or an external link.
Preview as embedding (iframe)booleannoOnly shown for external URLs. When enabled, the public portal renders the resource in an <iframe> preview.
Table Schema (schema)objectnoFor tabular resources (CSV), the list of columns and their inferred types. See Table Schema below.

Table Schema

For CSV resources, PortalJS Cloud automatically computes a Table Schema during the upload step, following the Frictionless Table Schema specification.

How it is calculated:

  1. When you upload a CSV (or supply a CSV URL), the parser reads the first 500 rows.
  2. It infers each column's name from the header row.
  3. It infers each column's type from the values in those 500 rows.
  4. The resulting schema ({ fields: [{ name, type }, ...] }) is attached to the resource and stored alongside the dataset.

Type inference picks one of the following Frictionless types per column:

any, array, boolean, date, datetime, duration, geojson, geopoint, integer, number, object, string, time, year, yearmonth

Reviewing and editing the schema:

  1. On the resource form (during dataset creation or when editing a resource), expand the Table Schema section.

    placeholder: table schema section

  2. Each row shows a column name (from the CSV header) and its inferred type. Change the type via the dropdown if the inference is wrong.

  3. Save. The corrected schema is persisted and made available via the CKAN API and the public portal.

When the schema is not computed:

  • Non-CSV resources (JSON, XLSX, PDF, etc.) do not get a Table Schema — only their format and basic descriptor.
  • External URLs that the parser cannot fetch are skipped — you can still edit the resource and add a schema manually if needed.

Visibility — public vs private

Each dataset has a Visibility field:

  • Public — appears on the public portal and is shown in search results.
  • Private — visible only inside the admin dashboard; hidden from the public site.

Toggle this from the edit form. The datasets list shows the current state in the Visibility column.