ILIAS icon indicating copy to clipboard operation
ILIAS copied to clipboard

[PROPOSAL] Remove Cloud Data from ILIAS

Open chfsx opened this issue 1 year ago • 4 comments

There is still code from Cloud in ILIAS, although the Cloud functionality was removed with ILIAS 8. i have worked out a proposal to remove the remaining code if possible and also to delete the data if it still exists. But I think a few people still need to think about what else we need to remove, for example:

  • Entries in the tree?
  • Directories, if available?
  • what else?

chfsx avatar Jun 05 '24 06:06 chfsx

See https://mantis.ilias.de/view.php?id=41575 as well

chfsx avatar Jul 04 '24 13:07 chfsx

Hi @chfsx

IMPORTANT: After the Update to ILIAS 10, cloud data will be gone and cannot be migrated anymore to plugins. Therefore, please make sure to perform any Migration, backup beforehand.

I looked through the code, thx a lot for this commit and for cleaning things up and removing all data. I am sure, there are some fragments in e.g. RBAC Tables we missed, however, they will be difficult to get rid of completely and are not sensitive in any way (no user data).

So ill ask the JF kindly to merge this PR.

Thx a lot.

Amstutz avatar Oct 03 '24 14:10 Amstutz

Jour Fixe, 14 OCT 2024: We highly appreciate this suggestion and accept the PR for ILIAS 10. Cloud object related data will no longer be available in ILIAS 10 (but also not needed by the new cloud plugin).

matthiaskunkel avatar Oct 14 '24 12:10 matthiaskunkel

@chfsx Maybe the following queries help to remove as much code of an object type (non-container) as possible.


  1. Remove objects from the repository

Build a sub-query:

SELECT ref_id
FROM object_data od
INNER JOIN object_reference objr ON objr.obj_id = od.obj_id
WHERE od.type = 'cld';

Use this query as sub-select for the following queries:

DELETE FROM tree WHERE child IN (?);
DELETE FROM object_reference WHERE ref_id IN (?);

TODO: Afterwards, delete object type specific tables ...

  1. Remove object-type-based data

Determine the object type id and use it for ?:

SELECT obj_id FROM object_data WHERE type = 'typ' AND title = 'cld';
DELETE FROM rbac_ta WHERE typ_id = ?;
  1. Clean up RBAC

Determine the operation id and use it for ?:

SELECT ops_id FROM rbac_operations WHERE class = 'create' AND operation = 'create_cld';
DELETE FROM rbac_operations WHERE ops_id = ?;
DELETE FROM rbac_templates WHERE ops_id = ?;
DELETE FROM rbac_ta WHERE ops_id = ?;
  1. Remove object related settings
DELETE FROM settings WHERE keyword = 'obj_dis_creation_cld';
DELETE FROM settings WHERE keyword = 'obj_add_new_pos_cld';
DELETE FROM settings WHERE keyword = 'obj_add_new_pos_grp_cld';
  1. Finally, delete the type
DELETE FROM object_data WHERE type = 'typ' AND title = 'cld';

mjansenDatabay avatar Oct 15 '24 07:10 mjansenDatabay

I would love to have this before starting of testing. Ill merge this in the current state. Feel free to add a further iteration improving this as michael sketches out.

I looked with @chfsx into the failing check, however, we believe that this is some issue with the checker. The file in question has been removed.

Amstutz avatar Oct 28 '24 08:10 Amstutz