| f | { | f | { |
| "config": "", | | "config": "", |
| "creator_user_id": "4df2bcbc-18c7-495e-a364-f781a84a420d", | | "creator_user_id": "4df2bcbc-18c7-495e-a364-f781a84a420d", |
| "frequency": "WEEKLY", | | "frequency": "WEEKLY", |
| "groups": [], | | "groups": [], |
| "id": "dbc7d539-5815-41d1-8e61-d772a4ccdc03", | | "id": "dbc7d539-5815-41d1-8e61-d772a4ccdc03", |
| "metadata_created": "2024-02-02T15:04:44.758727", | | "metadata_created": "2024-02-02T15:04:44.758727", |
| n | "metadata_modified": "2024-06-14T14:04:30.393286", | n | "metadata_modified": "2025-01-17T14:44:26.201215", |
| "name": "niagara-falls-agol-harvester", | | "name": "niagara-falls-agol-harvester", |
| "notes": "Harvester for the City of Niagara Falls (org: | | "notes": "Harvester for the City of Niagara Falls (org: |
| city-of-niagara-falls)", | | city-of-niagara-falls)", |
| "organization": { | | "organization": { |
| "approval_status": "approved", | | "approval_status": "approved", |
| "created": "2024-01-29T07:09:43.361903", | | "created": "2024-01-29T07:09:43.361903", |
| "description": "The City of Niagara Falls is a small vibrant city | | "description": "The City of Niagara Falls is a small vibrant city |
| located in the heart of the Niagara Region. When it comes to quality | | located in the heart of the Niagara Region. When it comes to quality |
| of life, Niagara Falls has other communities beat. Where else can you | | of life, Niagara Falls has other communities beat. Where else can you |
| enjoy all the amenities of a large urban centre in a comfortable, | | enjoy all the amenities of a large urban centre in a comfortable, |
| livable community? Whatever you are looking for you can find it in | | livable community? Whatever you are looking for you can find it in |
| Niagara Falls \u2013 Arts, culture, recreation, commerce and peaceful | | Niagara Falls \u2013 Arts, culture, recreation, commerce and peaceful |
| quiet moments \u2013 they\u2019re all here in Niagara | | quiet moments \u2013 they\u2019re all here in Niagara |
| Falls.\r\n\r\nNiagara Falls, Canada provides a vast array of | | Falls.\r\n\r\nNiagara Falls, Canada provides a vast array of |
| year-round activities for the entire family. Beautifully-maintained | | year-round activities for the entire family. Beautifully-maintained |
| biking and walking trails line the world-famous Niagara gorge while | | biking and walking trails line the world-famous Niagara gorge while |
| numerous golf courses, ball diamonds, playing fields, swimming pools | | numerous golf courses, ball diamonds, playing fields, swimming pools |
| and rinks unite local citizens and contribute to a strong sense of | | and rinks unite local citizens and contribute to a strong sense of |
| community. Whether you currently reside in Niagara Falls or are | | community. Whether you currently reside in Niagara Falls or are |
| planning to locate here, we invite you to explore and discover why | | planning to locate here, we invite you to explore and discover why |
| Niagara Falls is a great place to call home.\r\n\r\nThe City of | | Niagara Falls is a great place to call home.\r\n\r\nThe City of |
| Niagara Falls provides Open Data at the [Niagara Falls Open Data | | Niagara Falls provides Open Data at the [Niagara Falls Open Data |
| site](https://open.niagarafalls.ca).\r\n", | | site](https://open.niagarafalls.ca).\r\n", |
| "id": "38a4e2bc-b8c3-4b88-ab3b-1a17caffa78c", | | "id": "38a4e2bc-b8c3-4b88-ab3b-1a17caffa78c", |
| "image_url": | | "image_url": |
| "2024-02-05-165628.356549Official-Logo---Transparent-Background.png", | | "2024-02-05-165628.356549Official-Logo---Transparent-Background.png", |
| "is_organization": true, | | "is_organization": true, |
| "name": "city-of-niagara-falls", | | "name": "city-of-niagara-falls", |
| "state": "active", | | "state": "active", |
| "title": "City Of Niagara Falls", | | "title": "City Of Niagara Falls", |
| "type": "organization" | | "type": "organization" |
| }, | | }, |
| "owner_org": "38a4e2bc-b8c3-4b88-ab3b-1a17caffa78c", | | "owner_org": "38a4e2bc-b8c3-4b88-ab3b-1a17caffa78c", |
| "private": false, | | "private": false, |
| "relationships_as_object": [], | | "relationships_as_object": [], |
| "relationships_as_subject": [], | | "relationships_as_subject": [], |
| "resources": [], | | "resources": [], |
| "source_type": "dcat_json", | | "source_type": "dcat_json", |
| "state": "active", | | "state": "active", |
| "status": { | | "status": { |
| n | "job_count": 7, | n | "job_count": 38, |
| "last_job": { | | "last_job": { |
| n | "created": "2024-02-15 19:39:51.323278", | n | "created": "2025-01-10 19:30:06.210639", |
| "finished": "2024-02-15 19:40:11.321048", | | "finished": "2025-01-10 19:30:51.701140", |
| "gather_error_summary": [], | | "gather_error_summary": [], |
| n | "gather_finished": "2024-02-15 19:39:57.963200", | n | "gather_finished": "2025-01-10 19:30:23.345416", |
| "gather_started": "2024-02-15 19:39:51.401213", | | "gather_started": "2025-01-10 19:30:06.356273", |
| "id": "e932e032-2f4e-4d95-bf6a-f979d9b1404d", | | "id": "bc2bfd1b-695c-49e4-9f80-7317731c5c2d", |
| "object_error_summary": [ | | "object_error_summary": [ |
| { | | { |
| "error_count": 186, | | "error_count": 186, |
| "message": "Error importing dataset : ValidationError(None) | | "message": "Error importing dataset : ValidationError(None) |
| / Traceback (most recent call last):\n File | | / Traceback (most recent call last):\n File |
| /lib/ckan/default/src/ckanext-dcat/ckanext/dcat/harvesters/_json.py\", | | /lib/ckan/default/src/ckanext-dcat/ckanext/dcat/harvesters/_json.py\", |
| line 286, in import_stage\n package_id = | | line 286, in import_stage\n package_id = |
| p.toolkit.get_action(action)(context, package_dict)\n File | | p.toolkit.get_action(action)(context, package_dict)\n File |
| \"/usr/lib/ckan/default/src/ckan/ckan/logic/__init__.py\", line 504, | | \"/usr/lib/ckan/default/src/ckan/ckan/logic/__init__.py\", line 504, |
| in wrapped\n result = _action(context, data_dict, **kw)\n File | | in wrapped\n result = _action(context, data_dict, **kw)\n File |
| \"/usr/lib/ckan/default/src/ckan/ckan/logic/action/update.py\", line | | \"/usr/lib/ckan/default/src/ckan/ckan/logic/action/update.py\", line |
| 313, in package_update\n raise | | 313, in package_update\n raise |
| ValidationError(errors)\nckan.logic.ValidationError: None - | | ValidationError(errors)\nckan.logic.ValidationError: None - |
| {'keywords': ['Tag | | {'keywords': ['Tag |
| \"{{metadata.metadata.dataIdInfo.idCitation.otherCitDet}}\" must be | | \"{{metadata.metadata.dataIdInfo.idCitation.otherCitDet}}\" must be |
| alphanumeric characters or symbols: \u2019\\'-_.'], | | alphanumeric characters or symbols: \u2019\\'-_.'], |
| 'update_frequency': [\"Value must be one of ['as_required', | | 'update_frequency': [\"Value must be one of ['as_required', |
| 'biannually', 'current', 'daily', 'historical', 'monthly', 'never', | | 'biannually', 'current', 'daily', 'historical', 'monthly', 'never', |
| 'on_demand', 'other', 'periodically', 'quarterly', 'weekly', 'yearly', | | 'on_demand', 'other', 'periodically', 'quarterly', 'weekly', 'yearly', |
| 'quinquennial']\"]}\n" | | 'quinquennial']\"]}\n" |
| }, | | }, |
| { | | { |
| "error_count": 17, | | "error_count": 17, |
| "message": "Error importing dataset : ValidationError(None) | | "message": "Error importing dataset : ValidationError(None) |
| / Traceback (most recent call last):\n File | | / Traceback (most recent call last):\n File |
| /lib/ckan/default/src/ckanext-dcat/ckanext/dcat/harvesters/_json.py\", | | /lib/ckan/default/src/ckanext-dcat/ckanext/dcat/harvesters/_json.py\", |
| line 286, in import_stage\n package_id = | | line 286, in import_stage\n package_id = |
| p.toolkit.get_action(action)(context, package_dict)\n File | | p.toolkit.get_action(action)(context, package_dict)\n File |
| \"/usr/lib/ckan/default/src/ckan/ckan/logic/__init__.py\", line 504, | | \"/usr/lib/ckan/default/src/ckan/ckan/logic/__init__.py\", line 504, |
| in wrapped\n result = _action(context, data_dict, **kw)\n File | | in wrapped\n result = _action(context, data_dict, **kw)\n File |
| \"/usr/lib/ckan/default/src/ckan/ckan/logic/action/create.py\", line | | \"/usr/lib/ckan/default/src/ckan/ckan/logic/action/create.py\", line |
| 182, in package_create\n raise | | 182, in package_create\n raise |
| ValidationError(errors)\nckan.logic.ValidationError: None - | | ValidationError(errors)\nckan.logic.ValidationError: None - |
| {'keywords': ['Tag | | {'keywords': ['Tag |
| \"{{metadata.metadata.dataIdInfo.idCitation.otherCitDet}}\" must be | | \"{{metadata.metadata.dataIdInfo.idCitation.otherCitDet}}\" must be |
| alphanumeric characters or symbols: \u2019\\'-_.'], | | alphanumeric characters or symbols: \u2019\\'-_.'], |
| 'update_frequency': [\"Value must be one of ['as_required', | | 'update_frequency': [\"Value must be one of ['as_required', |
| 'biannually', 'current', 'daily', 'historical', 'monthly', 'never', | | 'biannually', 'current', 'daily', 'historical', 'monthly', 'never', |
| 'on_demand', 'other', 'periodically', 'quarterly', 'weekly', 'yearly', | | 'on_demand', 'other', 'periodically', 'quarterly', 'weekly', 'yearly', |
| 'quinquennial']\"], 'tags': ['Missing value']}\n" | | 'quinquennial']\"], 'tags': ['Missing value']}\n" |
| }, | | }, |
| { | | { |
| n | | n | "error_count": 9, |
| | | "message": "Error importing dataset : ValidationError(None) |
| | | / Traceback (most recent call last):\n File |
| | | /lib/ckan/default/src/ckanext-dcat/ckanext/dcat/harvesters/_json.py\", |
| | | line 286, in import_stage\n package_id = |
| | | p.toolkit.get_action(action)(context, package_dict)\n File |
| | | \"/usr/lib/ckan/default/src/ckan/ckan/logic/__init__.py\", line 504, |
| | | in wrapped\n result = _action(context, data_dict, **kw)\n File |
| | | \"/usr/lib/ckan/default/src/ckan/ckan/logic/action/create.py\", line |
| | | 182, in package_create\n raise |
| | | ValidationError(errors)\nckan.logic.ValidationError: None - |
| | | {'keywords': ['Tag |
| | | \"{{metadata.metadata.dataIdInfo.idCitation.otherCitDet}}\" must be |
| | | alphanumeric characters or symbols: \u2019\\'-_.'], |
| | | 'update_frequency': [\"Value must be one of ['as_required', |
| | | 'biannually', 'current', 'daily', 'historical', 'monthly', 'never', |
| | | 'on_demand', 'other', 'periodically', 'quarterly', 'weekly', 'yearly', |
| | | 'quinquennial']\"]}\n" |
| | | }, |
| | | { |
| "error_count": 2, | | "error_count": 2, |
| "message": "Error importing dataset : ValidationError(None) | | "message": "Error importing dataset : ValidationError(None) |
| / Traceback (most recent call last):\n File | | / Traceback (most recent call last):\n File |
| /lib/ckan/default/src/ckanext-dcat/ckanext/dcat/harvesters/_json.py\", | | /lib/ckan/default/src/ckanext-dcat/ckanext/dcat/harvesters/_json.py\", |
| line 286, in import_stage\n package_id = | | line 286, in import_stage\n package_id = |
| p.toolkit.get_action(action)(context, package_dict)\n File | | p.toolkit.get_action(action)(context, package_dict)\n File |
| \"/usr/lib/ckan/default/src/ckan/ckan/logic/__init__.py\", line 504, | | \"/usr/lib/ckan/default/src/ckan/ckan/logic/__init__.py\", line 504, |
| in wrapped\n result = _action(context, data_dict, **kw)\n File | | in wrapped\n result = _action(context, data_dict, **kw)\n File |
| \"/usr/lib/ckan/default/src/ckan/ckan/logic/action/update.py\", line | | \"/usr/lib/ckan/default/src/ckan/ckan/logic/action/update.py\", line |
| 313, in package_update\n raise | | 313, in package_update\n raise |
| ValidationError(errors)\nckan.logic.ValidationError: None - | | ValidationError(errors)\nckan.logic.ValidationError: None - |
| {'update_frequency': [\"Value must be one of ['as_required', | | {'update_frequency': [\"Value must be one of ['as_required', |
| 'biannually', 'current', 'daily', 'historical', 'monthly', 'never', | | 'biannually', 'current', 'daily', 'historical', 'monthly', 'never', |
| 'on_demand', 'other', 'periodically', 'quarterly', 'weekly', 'yearly', | | 'on_demand', 'other', 'periodically', 'quarterly', 'weekly', 'yearly', |
| 'quinquennial']\"]}\n" | | 'quinquennial']\"]}\n" |
| n | | n | }, |
| | | { |
| | | "error_count": 1, |
| | | "message": "Error importing dataset : ValidationError(None) |
| | | / Traceback (most recent call last):\n File |
| | | /lib/ckan/default/src/ckanext-dcat/ckanext/dcat/harvesters/_json.py\", |
| | | line 286, in import_stage\n package_id = |
| | | p.toolkit.get_action(action)(context, package_dict)\n File |
| | | \"/usr/lib/ckan/default/src/ckan/ckan/logic/__init__.py\", line 504, |
| | | in wrapped\n result = _action(context, data_dict, **kw)\n File |
| | | \"/usr/lib/ckan/default/src/ckan/ckan/logic/action/create.py\", line |
| | | 182, in package_create\n raise |
| | | ValidationError(errors)\nckan.logic.ValidationError: None - |
| | | {'update_frequency': [\"Value must be one of ['as_required', |
| | | 'biannually', 'current', 'daily', 'historical', 'monthly', 'never', |
| | | 'on_demand', 'other', 'periodically', 'quarterly', 'weekly', 'yearly', |
| | | 'quinquennial']\"]}\n" |
| } | | } |
| ], | | ], |
| "source_id": "dbc7d539-5815-41d1-8e61-d772a4ccdc03", | | "source_id": "dbc7d539-5815-41d1-8e61-d772a4ccdc03", |
| "stats": { | | "stats": { |
| "added": 0, | | "added": 0, |
| "deleted": 0, | | "deleted": 0, |
| t | "errored": 205, | t | "errored": 215, |
| "not modified": 0, | | "not modified": 0, |
| "updated": 1 | | "updated": 1 |
| }, | | }, |
| "status": "Finished" | | "status": "Finished" |
| }, | | }, |
| "total_datasets": 187 | | "total_datasets": 187 |
| }, | | }, |
| "tags": [], | | "tags": [], |
| "title": "Niagara Falls - AGOL Harvester", | | "title": "Niagara Falls - AGOL Harvester", |
| "type": "harvest", | | "type": "harvest", |
| "url": "https://open.niagarafalls.ca/api/feed/dcat-us/1.1.json" | | "url": "https://open.niagarafalls.ca/api/feed/dcat-us/1.1.json" |
| } | | } |