{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":554294328,"defaultBranch":"main","name":"odp-server","ownerLogin":"SAEON","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2022-10-19T15:12:44.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/3356797?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1708508005.0","currentOid":""},"activityList":{"items":[{"before":"c208213c67b84cba0c6678c6efc9145767796359","after":"5571b72eb30188c75c40f00e7bbb91a38a082ec1","ref":"refs/heads/main","pushedAt":"2024-09-25T12:37:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"marksparkza","name":"Mark J","path":"/marksparkza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52427991?s=80&v=4"},"commit":{"message":"Upgrade dependencies","shortMessageHtmlLink":"Upgrade dependencies"}},{"before":"d0f44a3810f2aeeb2a632a1bb6a4e093c553e0ef","after":"4e1c87ef43b7e63f7aa8f365d145086a36d3c3b7","ref":"refs/heads/v2-prod","pushedAt":"2024-09-25T09:07:26.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"marksparkza","name":"Mark J","path":"/marksparkza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52427991?s=80&v=4"},"commit":{"message":"Update docker compose command","shortMessageHtmlLink":"Update docker compose command"}},{"before":"a106d6cf30d65b8c9458140ebf1fefa9cb3da456","after":"d0f44a3810f2aeeb2a632a1bb6a4e093c553e0ef","ref":"refs/heads/v2-prod","pushedAt":"2024-09-25T09:02:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"marksparkza","name":"Mark J","path":"/marksparkza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52427991?s=80&v=4"},"commit":{"message":"Upgrade dependencies","shortMessageHtmlLink":"Upgrade dependencies"}},{"before":"bbd517ee700678c4b9438ae7939de24f0c31be84","after":"c208213c67b84cba0c6678c6efc9145767796359","ref":"refs/heads/main","pushedAt":"2024-09-23T13:00:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"marksparkza","name":"Mark J","path":"/marksparkza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52427991?s=80&v=4"},"commit":{"message":"Switch to SHA-256 hashing","shortMessageHtmlLink":"Switch to SHA-256 hashing"}},{"before":"d4a86e6491530c43f48c87647e1440b717724fbd","after":"bbd517ee700678c4b9438ae7939de24f0c31be84","ref":"refs/heads/main","pushedAt":"2024-09-20T15:02:31.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"marksparkza","name":"Mark J","path":"/marksparkza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52427991?s=80&v=4"},"commit":{"message":"Derive package key from title\n\nBut, further to cb2fb61d98294881e1be9c8fd74fc3bffa601aee, don't change the package key on update if the package already has any resources.","shortMessageHtmlLink":"Derive package key from title"}},{"before":"f3a020984959be7c6f301a274463493b1c05223b","after":"d4a86e6491530c43f48c87647e1440b717724fbd","ref":"refs/heads/main","pushedAt":"2024-09-20T10:20:47.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"marksparkza","name":"Mark J","path":"/marksparkza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52427991?s=80&v=4"},"commit":{"message":"Update resource API with title and hashing changes","shortMessageHtmlLink":"Update resource API with title and hashing changes"}},{"before":"cb2fb61d98294881e1be9c8fd74fc3bffa601aee","after":"f3a020984959be7c6f301a274463493b1c05223b","ref":"refs/heads/main","pushedAt":"2024-09-19T08:56:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"marksparkza","name":"Mark J","path":"/marksparkza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52427991?s=80&v=4"},"commit":{"message":"Update DB factory tests","shortMessageHtmlLink":"Update DB factory tests"}},{"before":"110988eca16bd85af6774f7e482b679430e5699a","after":"cb2fb61d98294881e1be9c8fd74fc3bffa601aee","ref":"refs/heads/main","pushedAt":"2024-09-12T13:36:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"marksparkza","name":"Mark J","path":"/marksparkza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52427991?s=80&v=4"},"commit":{"message":"Add package key and generalize resource hash\n\nThe idea with package key is that it will be a sanitized form of the package title, and will form part of the archival path for a resource upload, as in {archive.url}/{provider.key}/{package.key}/{file_path}, instead of using the package uuid in that path position. This will make it easier for curators/admins to see at a glance what package a folder relates to when viewing it in Nextcloud. The API will need to consider how to deal with package title changes. It doesn't really matter from an archive/package/resource management perspective, but it might be confusing for curators/admins if a package's files are split over multiple directories.\n\nResource title is also made nullable. This is more sensible when we start looking at multiple file uploads and really it is unnecessary. We do however add a check such that title must be given if filename is not (relevant for externally managed datasets e.g. Obs DB).","shortMessageHtmlLink":"Add package key and generalize resource hash"}},{"before":"d3f2e93e6ea9574f39f9462c1ffb6fc10b35f6de","after":"110988eca16bd85af6774f7e482b679430e5699a","ref":"refs/heads/main","pushedAt":"2024-08-30T11:22:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"marksparkza","name":"Mark J","path":"/marksparkza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52427991?s=80&v=4"},"commit":{"message":"Tweak diagram","shortMessageHtmlLink":"Tweak diagram"}},{"before":"ac3cbe1e5d5ad18997c863679dcdb510efcc9135","after":"d3f2e93e6ea9574f39f9462c1ffb6fc10b35f6de","ref":"refs/heads/main","pushedAt":"2024-08-29T13:43:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"marksparkza","name":"Mark J","path":"/marksparkza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52427991?s=80&v=4"},"commit":{"message":"Add a package date range tag","shortMessageHtmlLink":"Add a package date range tag"}},{"before":"d3d1a920bde632322efcc2e32a3ac6bf54a2648e","after":"ac3cbe1e5d5ad18997c863679dcdb510efcc9135","ref":"refs/heads/main","pushedAt":"2024-08-27T14:53:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"marksparkza","name":"Mark J","path":"/marksparkza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52427991?s=80&v=4"},"commit":{"message":"Generalize bounding box to geographic location\n\nSupport point locations and bounding boxes, and require a place name. Currently, we only have metadata records with points and boxes. If in future we ever decide to support polygons, this tag schema will need to be extended.\n\nTranslations will be updated in due course.","shortMessageHtmlLink":"Generalize bounding box to geographic location"}},{"before":"8ffff3314d427596faa69025a65fc95aebdd2bb4","after":"d3d1a920bde632322efcc2e32a3ac6bf54a2648e","ref":"refs/heads/main","pushedAt":"2024-08-26T09:30:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"marksparkza","name":"Mark J","path":"/marksparkza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52427991?s=80&v=4"},"commit":{"message":"Add a bounding box tag for packages","shortMessageHtmlLink":"Add a bounding box tag for packages"}},{"before":"d065faf4f108f803c50cf02b59ca9b9cb0b0c370","after":"8ffff3314d427596faa69025a65fc95aebdd2bb4","ref":"refs/heads/main","pushedAt":"2024-08-25T09:16:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"marksparkza","name":"Mark J","path":"/marksparkza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52427991?s=80&v=4"},"commit":{"message":"Add source code and license links to footer","shortMessageHtmlLink":"Add source code and license links to footer"}},{"before":"84f81f3a42173d23ff7feec70c16feeea3928cba","after":"d065faf4f108f803c50cf02b59ca9b9cb0b0c370","ref":"refs/heads/main","pushedAt":"2024-08-23T08:53:22.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"marksparkza","name":"Mark J","path":"/marksparkza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52427991?s=80&v=4"},"commit":{"message":"Implement archive-specific authorization\n\nThe archive API resource upload endpoint now also implements provider (read) and package (write) auth. This forces package id to be mandatory, which actually is advantageous. It simplifies the overall character of the endpoint, unifying archival and packaging paths - which amongst other things allows filenames to recur across a provider's packages without having to artificially change archival paths.","shortMessageHtmlLink":"Implement archive-specific authorization"}},{"before":"2a052f141574c341b51b4c605cb906d1cd58f4f0","after":"84f81f3a42173d23ff7feec70c16feeea3928cba","ref":"refs/heads/main","pushedAt":"2024-08-22T17:14:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"marksparkza","name":"Mark J","path":"/marksparkza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52427991?s=80&v=4"},"commit":{"message":"Add scope and adapter to archive config API output model","shortMessageHtmlLink":"Add scope and adapter to archive config API output model"}},{"before":"54c41f3b1aa1e442751cfd8575fab92eac9ca554","after":"2a052f141574c341b51b4c605cb906d1cd58f4f0","ref":"refs/heads/main","pushedAt":"2024-08-22T15:21:49.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"marksparkza","name":"Mark J","path":"/marksparkza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52427991?s=80&v=4"},"commit":{"message":"Add scope and adapter attributes to archive instances","shortMessageHtmlLink":"Add scope and adapter attributes to archive instances"}},{"before":"029d2cdf3a99b177ade94ad46dd5143ff3a71ab5","after":"54c41f3b1aa1e442751cfd8575fab92eac9ca554","ref":"refs/heads/main","pushedAt":"2024-08-22T10:10:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"marksparkza","name":"Mark J","path":"/marksparkza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52427991?s=80&v=4"},"commit":{"message":"Publish the ODP server software under AGPL-3.0-or-later","shortMessageHtmlLink":"Publish the ODP server software under AGPL-3.0-or-later"}},{"before":"1568e18861a52c00d155f5c723e9dc19314835f4","after":"029d2cdf3a99b177ade94ad46dd5143ff3a71ab5","ref":"refs/heads/main","pushedAt":"2024-08-22T09:16:38.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"marksparkza","name":"Mark J","path":"/marksparkza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52427991?s=80&v=4"},"commit":{"message":"Avoid key violations on derived path in archive|package resource","shortMessageHtmlLink":"Avoid key violations on derived path in archive|package resource"}},{"before":"87f44604ea008647671c343cd1c59d9e3ed182d7","after":"1568e18861a52c00d155f5c723e9dc19314835f4","ref":"refs/heads/main","pushedAt":"2024-08-21T21:55:18.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"marksparkza","name":"Mark J","path":"/marksparkza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52427991?s=80&v=4"},"commit":{"message":"Redesign resource upload API\n\nThis endpoint is for uploading a file to an archive and optionally linking it to a package.\n\nProvider id serves as a directory for the provider.","shortMessageHtmlLink":"Redesign resource upload API"}},{"before":"088d99a6a10fb72cac72d440a840da404fafb92f","after":"87f44604ea008647671c343cd1c59d9e3ed182d7","ref":"refs/heads/main","pushedAt":"2024-08-21T15:49:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"marksparkza","name":"Mark J","path":"/marksparkza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52427991?s=80&v=4"},"commit":{"message":"Constrain odp.provider:read to providers that the caller has access to\n\nAlso add a new (unconstrained) odp.provider:read_all scope for use in the admin interface.","shortMessageHtmlLink":"Constrain odp.provider:read to providers that the caller has access to"}},{"before":"28db9c40adc310b29dba5fca002cb8026e3b5125","after":"088d99a6a10fb72cac72d440a840da404fafb92f","ref":"refs/heads/main","pushedAt":"2024-08-20T14:18:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"marksparkza","name":"Mark J","path":"/marksparkza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52427991?s=80&v=4"},"commit":{"message":"Enhance integrity checking of file uploads","shortMessageHtmlLink":"Enhance integrity checking of file uploads"}},{"before":"5538a89924259faa79d102fa04c6d5245e77d425","after":"28db9c40adc310b29dba5fca002cb8026e3b5125","ref":"refs/heads/main","pushedAt":"2024-08-20T08:34:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"marksparkza","name":"Mark J","path":"/marksparkza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52427991?s=80&v=4"},"commit":{"message":"Allow implicit creation of package_resource association entities\n\nThis reverts the change to the package ORM relationship configuration in 7a332f4a3af004d858ab1c096433827a7dc6414d, and enables assignment of resources to packages by assuming resource filename to be the packaged resource path.","shortMessageHtmlLink":"Allow implicit creation of package_resource association entities"}},{"before":"bb7221c551054f83768b8fed179be8d31e68f653","after":"5538a89924259faa79d102fa04c6d5245e77d425","ref":"refs/heads/main","pushedAt":"2024-08-20T07:43:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"marksparkza","name":"Mark J","path":"/marksparkza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52427991?s=80&v=4"},"commit":{"message":"Update usage of archive paths on resource output model","shortMessageHtmlLink":"Update usage of archive paths on resource output model"}},{"before":"7a332f4a3af004d858ab1c096433827a7dc6414d","after":"bb7221c551054f83768b8fed179be8d31e68f653","ref":"refs/heads/main","pushedAt":"2024-08-20T07:25:00.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"marksparkza","name":"Mark J","path":"/marksparkza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52427991?s=80&v=4"},"commit":{"message":"Remove package notes\n\nWe'll create a package notes tag instead, with cardinality 'user' (each user can set their own note).","shortMessageHtmlLink":"Remove package notes"}},{"before":"fa970a23e012fd5cd371b481b62d111cc8030bae","after":"7a332f4a3af004d858ab1c096433827a7dc6414d","ref":"refs/heads/main","pushedAt":"2024-08-19T16:56:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"marksparkza","name":"Mark J","path":"/marksparkza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52427991?s=80&v=4"},"commit":{"message":"Add path to package_resource association table\n\nThis represents a relative path to a resource within a package and provides a way to prevent duplication of resources within packages. This is distinct from the archival path for a resource on archive_resource.\n\nNote that the ORM relationship configuration on package has changed such that resource instances can no longer simply be assigned to a package to create a package_resource. The additional association attributes require package_resource instances to be created explicitly.\n\nThe notes column is also dropped from package; a user-cardinality package notes tag would be more sensible.","shortMessageHtmlLink":"Add path to package_resource association table"}},{"before":"886ecaae4f3afa1c66ba28476f86e7777d737549","after":"fa970a23e012fd5cd371b481b62d111cc8030bae","ref":"refs/heads/main","pushedAt":"2024-08-18T07:02:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"marksparkza","name":"Mark J","path":"/marksparkza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52427991?s=80&v=4"},"commit":{"message":"Add resource upload endpoint to the archive API\n\nResponsibility for archive integration (via adapters) is moved from UI base to the ODP server. This ensures atomicity of the entire upload-package-archive transaction and ensures that integration is not dependent on client implementation.","shortMessageHtmlLink":"Add resource upload endpoint to the archive API"}},{"before":"58da4d4cda5b5c316d92b98968e79081d42c7277","after":"886ecaae4f3afa1c66ba28476f86e7777d737549","ref":"refs/heads/main","pushedAt":"2024-08-16T07:07:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"marksparkza","name":"Mark J","path":"/marksparkza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52427991?s=80&v=4"},"commit":{"message":"Implement resource upload to file storage","shortMessageHtmlLink":"Implement resource upload to file storage"}},{"before":"776fc4ee0291a247f3f33ea6041285165b59e409","after":"58da4d4cda5b5c316d92b98968e79081d42c7277","ref":"refs/heads/main","pushedAt":"2024-08-14T16:59:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"marksparkza","name":"Mark J","path":"/marksparkza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52427991?s=80&v=4"},"commit":{"message":"Rename and move form macros to forms.j2","shortMessageHtmlLink":"Rename and move form macros to forms.j2"}},{"before":"dd3e01fb2324d8ae9bb42e046876ae33e55cecb9","after":"776fc4ee0291a247f3f33ea6041285165b59e409","ref":"refs/heads/main","pushedAt":"2024-08-14T13:46:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"marksparkza","name":"Mark J","path":"/marksparkza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52427991?s=80&v=4"},"commit":{"message":"Create the beginnings of a data submission interface\n\nPackage tagging functions have been moved out of the admin UI. Package configuration is intended to be done only by data providers; curators' work begins when packages and their tags are converted into records.\n\nThe package contributor tag scope has been changed to odp.package:write, and the tag-specific scope dropped. Package tags should in general use the package write scope, except where differentiated access control is expressly required (as for package DOIs).","shortMessageHtmlLink":"Create the beginnings of a data submission interface"}},{"before":"9a511c65840286d8319399c25c1f7280faf8f133","after":"dd3e01fb2324d8ae9bb42e046876ae33e55cecb9","ref":"refs/heads/main","pushedAt":"2024-08-12T10:04:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"marksparkza","name":"Mark J","path":"/marksparkza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52427991?s=80&v=4"},"commit":{"message":"Update docker compose command","shortMessageHtmlLink":"Update docker compose command"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0yNVQxMjozNzozNS4wMDAwMDBazwAAAATATjET","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOC0xMlQxMDowNDo1MC4wMDAwMDBazwAAAASX9JWn"}},"title":"Activity ยท SAEON/odp-server"}