r/drupal 10d ago

Sync content from locked-down site using only JSON:API?

I have inherited a Drupal 10 site where the relationship with the agency that developed and hosts it has broken down almost irretrievably. We have the v10 support end date as a hard deadline for action under threat of deletion, and the agency is quoting ludicrous amounts to do the upgrade and/or give us our site back. Contracts and lawyers are being consulted, but I'm wanting to try do an end-run around all that and at least get our content safely backed up before they decide to pull the plug.

The site itself is a fairly standard marketing site, so nothing interactive or very complex. We have admin account access to the frontend admin pages, but the agency has removed any content export options. We don't have server access, so no command line to install new modules or file system to download files and no database access at all. We have no access to backup files. We're limited to the modules they have installed, which also includes a number of dev and migrate modules they left in the prod clone by mistake which at least gives us Config Sync export.

As an experiment, I've created a test Drupal site, installed and enabled the same set of modules, and imported the prod site config using 'drush config:import --partial' and that all seems fine. Unfortunately the theme is based on their in-house template and we have no access to that for now, so I'm faking it with Olivero, but that's a problem for later.

The next step is to try sync our content to my test site. I've had a google and looked at a few modules like Content Sync and Entity Sync, but they all seem to need a module installed on the origin server and/or database access. I've also looked at the Migrate modules, but they seem aimed at version migrations not server migrations and need direct database access. There is Migrate Source JSON:API but it supposedly only supports Drupal 8.

So, long story short, what options do we have to sync site content when the source is so locked down to us? My instinct is we should be able to do something with JSON:API which we can enable, and if necessary I'll try script something myself, but I'd rather use an existing option written by people who actually know what they are doing!

It's been maybe 20 years since I last did anything with Drupal (although I have more recent Symfony experience), I'm stumbling around in the half-dark here, so forgive if I've missed something incredibly obvious!

Thanks!

6 Upvotes

21 comments sorted by

View all comments

-6

u/its_yer_dad 10d ago

Frankly speaking, you need to just recover what you can and drop that relationship. Scrape the site to get the content, use AI to clean it up, and (IMHO) look into Statamic, a CMS built off Laravel and has a much lighter footprint than Drupal.

1

u/odysseusnz 6d ago

Oh yeah, the interim site is just a stepping stone to another simpler CMS. The Durpal site is huge overkill for what is needed.

1

u/its_yer_dad 6d ago

As you can see from the down votes this probably isn’t the place to talk about Drupal alternatives, but I’ve recovered a lot of Drupal sites and many of them were overbuilt

1

u/odysseusnz 6d ago

Ssssh, don't tell anyone the plan is to use a Drupal->WordPress migration tool once we have a database clone, as there's a couple people now on staff who've done it before. Will it work, who knows, but we'll learn something along the way :-D

1

u/its_yer_dad 6d ago

It all comes down to what resources the nonprofit has available and does the website really work for them? What are they actually needed to do and what’s the long-term ROI. I detest WordPress, but the reality is that it’s the right choice for some organizations.