GeoPackage Handoff Report avatar

GeoPackage Handoff Report

Pricing

$0.05 / useful geopackage handoff report

Go to Apify Store
GeoPackage Handoff Report

GeoPackage Handoff Report

Experimental small-file declared metadata handoff report for ArcGIS Online Content direct GeoPackage upload.

Pricing

$0.05 / useful geopackage handoff report

Rating

0.0

(0)

Developer

L3Digital

L3Digital

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

17 days ago

Last modified

Share

Identify which declared GeoPackage contents need a separate delivery method before handing the file to an ArcGIS Online publisher. Supply one exported file of at most 2 MiB (2,097,152 bytes) as Base64. The structured report names tile tables and views, distinguishes supported-in-principle from undocumented content, and gives the owner specific questions to resolve before delivery.

This experimental metadata report supplies preparation questions, not a guarantee of successful publication. Check the actual published result with the owner.

Prepare an input

Start with the public GeoPackage example to inspect the synthetic input and report fields. The demo has no report-event charge; it does not establish that your file will be accepted by a recipient.

Choose one of these JSON inputs. The synthetic example needs no file or permission attestation:

{"demo": true}

For your own file, encode a standalone, exported/checkpointed GeoPackage as ordinary padded Base64 and provide:

{
"fileBase64": "REPLACE_WITH_CANONICAL_BASE64",
"processingPermission": true
}

The placeholder is not runnable input. Replace it with the file's Base64 string. The decoded file must be nonempty and at most 2 MiB (2,097,152 bytes); the encoded string must be at most 2,796,204 characters. Use ASCII Base64 without whitespace, a data-URI prefix, URL-safe characters or noncanonical padding. A standalone file cannot establish whether transactions in an external WAL file are missing: export/checkpoint your source before encoding it.

processingPermission: true asserts that you may transfer and process this file on Apify. It does not verify ownership or consent. demo defaults to false and processingPermission defaults to false. Both must be JSON booleans.

The routes are exclusive. Productive input requires fileBase64, permission true, and demo omitted or false. Demo input requires demo: true, no fileBase64 key (even null is refused), and permission omitted or false. Unknown fields are refused. There is no URL, batch, SQL, credential or profile input. The service does not fetch another file or forward yours to Esri.

Understand the scope

The sole profile is ArcGIS Online Content → New item → direct GeoPackage upload, based on Esri's publish-features guidance checked October 2, 2026. ArcGIS Pro and Map Viewer publishing routes are outside this profile.

Declared contentsReport classification and next step
Registered nonspatial attributes tablesupported_in_principle; inspect the actual recipient result.
Registered features with POINT, MULTIPOINT, LINESTRING, MULTILINESTRING, POLYGON or MULTIPOLYGON, with Z/M both zerosupported_in_principle for the declared family; inspect the actual result.
Tile table or user viewdocumented_omission; ask the owner to choose a separate delivery method.
Unregistered table, other content/geometry type, or declared Z/M dimensionsundocumented; confirm recipient handling with the owner.

Tiles and views are documented examples of omissions, not an exhaustive exclusion list. The report does not prescribe tile upload, conversion or view materialization. View columns and geometry are not inspected; a view's geometry is null. Extension registrations receive a count and an owner-review question when present; their effects and recipient coverage remain unknown. No observed registrations does not prove that no extensions exist.

Every completed report asks whether this route's documented publication in Web Mercator fits the owner's purpose. Check its applicability to the actual outputs; other transformations may occur.

Inspection reads bounded metadata declarations. It does not decode geometry, validate the whole GeoPackage, convert it, certify it or predict acceptance. Conventional RTree indexes are virtual tables and are refused by this prototype. Historical GP10/GP11 application IDs are unsupported. Malformed, ambiguous or over-limit inspection shapes receive a safe noncompleted report.

Read a report

The report uses reportVersion, profile, status, reasonCode, scopeComplete, example, useful, inputBytes, items, actions, extensionRegistrations, limitations and retention. profile identifies the dated route through id, checkedDate and sourceUrl.

StatusHow to use it
completedScoped inspection finished. Read each item's classification and owner actions; completion still permits undocumented recipient coverage.
refusedInput or a known inspection gate prevented mapping. Check reasonCode; there are no item/action findings.
incompleteInspection could not finish reliably. Items/actions are empty so partial findings cannot become delivery advice.
failedSetup, protection, billing, persistence or an internal failure prevented the promised result. Run failure may remain visible even if output storage fails.

Only completion has scopeComplete: true and reasonCode: null. Productive completion has useful: true; the demo has example: true, useful: false. useful is an eligibility flag, not proof of customer value.

Items preserve exact table/view name, objectKind, registered, declaredContentType, declared geometry, classification and ruleCodes. Geometry declarations expose column, type, srsId, z and m. Actions contain a fixed code, exact subjects and an ownerQuestion. choose_separate_delivery names omitted content; confirm_undocumented_content names unresolved content; inspect_recipient_result asks you to check supported content after publication. Global questions have empty subjects.

Retrieve the report from the run's default dataset or the key-value store's OUTPUT key. Both stores receive the same logical report when both writes succeed. Inspect status and the owner questions before using the findings.

Sample output

This complete synthetic example corresponds to {"demo": true}. The named tiles and views need separate delivery; the attributes table still needs the publisher to inspect the actual recipient result. It does not establish customer use, recipient acceptance or a billable report.

{
"reportVersion": "1",
"profile": {
"id": "arcgis-online-content-new-item-direct-geopackage-2026-10-02",
"checkedDate": "2026-10-02",
"sourceUrl": "https://doc.arcgis.com/en/arcgis-online/manage-data/publish-features.htm"
},
"status": "completed",
"reasonCode": null,
"scopeComplete": true,
"example": true,
"useful": false,
"inputBytes": 36864,
"items": [
{
"name": "imagery",
"objectKind": "table",
"registered": true,
"declaredContentType": "tiles",
"geometry": null,
"classification": "documented_omission",
"ruleCodes": [
"documented_tiles_omission"
]
},
{
"name": "joined_features",
"objectKind": "view",
"registered": true,
"declaredContentType": "features",
"geometry": null,
"classification": "documented_omission",
"ruleCodes": [
"documented_view_omission",
"extension_coverage_undocumented",
"view_columns_not_inspected"
]
},
{
"name": "notes",
"objectKind": "table",
"registered": true,
"declaredContentType": "attributes",
"geometry": null,
"classification": "supported_in_principle",
"ruleCodes": [
"supported_attributes"
]
},
{
"name": "unlisted_view",
"objectKind": "view",
"registered": false,
"declaredContentType": null,
"geometry": null,
"classification": "documented_omission",
"ruleCodes": [
"documented_view_omission",
"unregistered_content",
"view_columns_not_inspected"
]
}
],
"actions": [
{
"code": "review_declared_extensions",
"subjects": [],
"ownerQuestion": "Has the publisher confirmed recipient coverage of the declared extension registrations?"
},
{
"code": "review_web_mercator_transformation",
"subjects": [],
"ownerQuestion": "Does this route's documented publication in Web Mercator fit the owner's purpose, after checking its applicability to actual outputs?"
},
{
"code": "choose_separate_delivery",
"subjects": [
"imagery"
],
"ownerQuestion": "Which separate delivery method will the publisher choose for this documented omitted content?"
},
{
"code": "choose_separate_delivery",
"subjects": [
"joined_features"
],
"ownerQuestion": "Which separate delivery method will the publisher choose for this documented omitted content?"
},
{
"code": "inspect_recipient_result",
"subjects": [
"notes"
],
"ownerQuestion": "Does the actual published result preserve this declared content for the owner's purpose?"
},
{
"code": "choose_separate_delivery",
"subjects": [
"unlisted_view"
],
"ownerQuestion": "Which separate delivery method will the publisher choose for this documented omitted content?"
}
],
"extensionRegistrations": 1,
"limitations": [
"metadata_declarations_only",
"geometry_validity_not_checked",
"recipient_acceptance_unverified",
"exclusion_examples_nonexhaustive",
"checkpointed_snapshot_required",
"extension_coverage_undocumented"
],
"retention": {
"platformNotice": "Apify stores run input and output under platform and account retention controls; this Actor does not delete platform input, output, backups or histories.",
"platformDeletionPerformed": false,
"localTemporaryCleanup": "completed"
}
}

Pricing and privacy

The initial experimental price is $0.05 per useful completed productive report. In pay-per-event runs, the Actor checks report-event capacity before decoding a productive file and requests at most one report-produced event after both output writes succeed. Refused, incomplete, failed and demo reports do not request that event. Platform compute/storage costs may still apply, including to demo runs.

Persistence failure never requests the report event. If charging is rejected or its outcome is unknown after invocation, the run fails with a fixed billing category; the already-persisted completed report stays unchanged. Retrieve the existing result instead of automatically repeating the run. Separate invocations are separate requests, and no cross-run settlement guarantee or automatic charge retry is provided.

The Actor creates a private temporary decoded file and removes it after processing; cleanup failure makes the result failed and nonbillable. Reports intentionally reveal actual table/view names, geometry-column names and the allowed declarations above. These identifiers can themselves be sensitive. Reports omit feature values, coordinates, metadata payloads, SQL and raw errors.

Apify stores run input, including the Base64 file, and output under platform and account retention controls. The Actor does not delete platform input, output, backups or histories. retention.platformDeletionPerformed is false; localTemporaryCleanup reports not_required, completed or failed. Temporary cleanup is not a zero-retention or security guarantee. For files you cannot transfer, use local inspection plus the recipient's guidance.