Coder Social home page Coder Social logo

spring-fedora's People

Contributors

schiller-stoff avatar

Watchers

 avatar

spring-fedora's Issues

Bootstraping: Create object prototypes

DESC

  • prototypes are not really something built-in in fedora. Are implemented via gams logic - "clone object"
  • maybe play around with TEI or simple content models

TODOs

  • add as empty containers
  • think about: take over TransactionManager + FedoraProxy? (for adding some very basic RDF)
  • implement TEI prototype with some basic RDF?

Add basic thymeleaf CRUD client functionality

DESC

  • control via client basic opeartions

TODOs

  • implement very basic search for objects via pid
  • add tymeleaf index html
  • implement create object form?
  • add link to fcrepo/rest + apply two cols layout on main

Simulate creation of ldp binary

DESC

  • create binaries like for datastreams on gams4

TODOs

  • Resource model must contain mimetype
  • fix checking if datastream already exists
  • datastream must be linked to a digital object
  • add content to datastream!
  • remove rdfxml field ?
  • decide: resource must contain all available info? base rdf? AND additional datastreams?
  • add to ResourceReposiotry ability to create container types (handle via enum?)

Implement transaction workflow

DESC

TODOs

  • implement some kind of lambda functionaliy? so that no passing around of transaction ids is necessary
  • implement
  • import RepositoryUtils to append fedora response body if available to error messages
  • implement doGetTransaction() with correct error handling - txid better being an optional?
  • Check on hot to handle if txid is null / optional / when transaction is expired or not!
  • Repository layer of fedora must grab transaction id from application / transaction context?
  • injecting own spring component as holder for transaction id??
  • implement FedoraHttpProxy as spring component --> not necessary!
  • declutter service methods - being able to be transaction save = no intern method calls / using only from external instances injected by spring
  • update DigitalObjectRepository to work with transactions
  • deletion of datastreams must be transaction safe
  • update DatastreamRepository to work with transactions
  • update ResourceRepository to work with transactions
  • implement transaction save service layer!

Spring Security integration / Fedora authorization and authentication

DESC

Summary

  • fedora auth is based on linked data - and therefoe complex / first level of security should be implemented via spring and oauth processes
  • keycloak adapters are deprecated therefore best way is to use spring-ouauth2-client library for spring integration. (e.g. spring-boot-keycloak adapter is deprecated https://www.keycloak.org/2022/02/adapter-deprecation)
  • simplest authorization workflow would be authorization-code-flow for spring based web clients
  • using keycloak as authorization server

Most useful resources for spring based authorization

TODOs

  • gather material / resources
  • implement

Think about: validation via spring!

DESC

TODOs

  • test out controller based validation
  • check - validation on entity instantiation?
  • refactoring: centralize validation on model / entity layer?
  • think about: centralized validation

Clean up model classes

DESC

  • clean up old and unused properties!

TODOs

  • clean up resource + datastream fields
  • digital object should inherit from resource
  • correct view: show only datastream ids on digital object view

Simulate centralization of environment variables via spring workflow

DESC

TODOs

  • implement

Add bootstrap setup according to GAMS configuration

DESC

  • check which LDP containers need to be breated
  • try to copy over code from Johannes (FedoraConnector init method?)

TODOs

  • add fedora client to spring boot app
  • create bootstrap component as in rdf4j zimlab
  • think about: stored in fedora are resources AND containers --> is it truely a ResourceRepository?
  • check how to wrap code in some kind of fedora wrapper? services / repository layer? (I think fedora should work as DigitalObjectRepository? --- because fedora is something application dependent - spring should not know about fedora)
  • implement startup according to initial gams setup

Delete resource in fedora (+tombstone page)

DESC

  • try to delete a fedora resource
  • additionally try to remove the tombstone entry
  • tombstone is just another resource in fedora and can be deleted via postfixing "/fcr:tombstone" to the deleted fedora resource's path

TODOs

  • implement

Create datastreams via web client

DESC

  • mimic Johannes method to create datastreams via cirilo
  • mimic some prototype behaviors

TODOs

  • #20
  • let datastream be added + file upload via web client Sprign MultiPartFile
  • show parsed list of datastreams -> this must be done via external indexer! (ask database sepcifically for children of digital object - and not parse out from metadata rdf?)
  • link to datastreams from fedora via thymeleaf?
  • remove existing datastreams?
  • improve general bootstrap display

Create digital object via pid (etc.)

DESC

  • match pid to fedora path
  • e.g. when context:bla -> aggregation. o:cantus -> objects etc. these paths must be mapped!

TODOs

  • implement renaming as in gams - take a look at the Rename.java

Calls simple search API to display overview of objects?

DESC

TODOs

  • refactor: use spring env variables for fedora location (address + port)
  • add to DigitalObjectService
  • add to view part somewhere?
  • link from digital object overview to individual digital objects
  • add ability to delete digital objects
  • update initializing: creation of each object should be able to fail
  • fully craft DigitalObjectRepository
  • fill in more stuff to the digital objects?
  • improve error handling
  • think about: dto concept?

Implement some kind of content model workflow at object creation

DESC

  • e.g. classes for ContentModel datastreams DC / TEI_SOURCE etc.?
  • craft content model workflow for gams
  • add cm4f properties like on testserver

TODOs

  • better utils location for mapPidToResourcePath!
  • implement DigitalObjectRepository (findById)
  • add to digital object service: createFromPrototype
  • compare with Johanneses impl / create own class for masrhalling etc.?
  • implement dublin core workflow?
  • think about adding more fields to DigitalObject fields?
  • implement
  • add to view ability to create object from prototype
  • digital object service: map model statements to prototype pids somewhere!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.