I need confluence Page IDs for all pages containing a specific string.

Peter DeWitt Community Champion Nov 01, 2017

OK,here is the scenario.  We have a Confluence instance that is a number of years old.  Over the years users have created many pages (2000+) that contain passwords in plain text.  Our security team has a list of these passwords and they need to remove them from the pages they appear on and remove the history of those pages.  They would like us to generate a list of page URLs for them.  If we have the page IDs we can concatenate the URLs in excel. 

1. Does anyone have any ideas on how to do this either through the API or direct to DB?

2. Has anyone come across a utility that would allow the scrubbing of specific strings within all of Confluence; find and replace like?

6 answers

4 accepted

1 vote
Accepted answer
Ann Worley Atlassian Team Nov 01, 2017

I am not sure how to generate a list of URLs with the particular strings (passwords) but as far as a search and replace strategy, you could try a procedure similar to: How Do I replace all 'hard' links to my old Base URL The first two options will replace content in historical page versions.

1 vote
Accepted answer
Stephen Deutsch Community Champion Nov 07, 2017

Here's another option:

Search and Replace User Macro

You could use this to search for the search terms, and it will create a table in Confluence with links that you could copy and paste into Excel, and then you wouldn't even have to look up the IDs. Either that or I could modify it so it would display the IDs as well.

It has replace functionality too, so you could use it to make the necessary changes. It has a preview option so you can see what changes it is making to the code of the page.

Davin Studer Community Champion Nov 07, 2017

Pretty slick user macro! I might be using this myself for some manual replacements I have been doing.

0 votes
Accepted answer
0 votes
Accepted answer
Davin Studer Community Champion Nov 01, 2017

Keysight Admin Tools for Confluence has a utility for find and replace throughout the whole wiki. Use with caution and test first on a non-prod version. :)

0 votes
Peter DeWitt Community Champion Nov 07, 2017

Guys, tanks for the answers.  This is exactly what I was looking for.  Options. :)

Davin Studer Community Champion Nov 08, 2017

If we get to choose our tanks I'm gonna have to go with the good old Sherman.

TankshermanM4.jpg

0 votes
Davin Studer Community Champion Nov 07, 2017

If you want a SQL query to find the pages this should get you what you want.

select S.SPACENAME, C.*
from CONTENT C
inner join BODYCONTENT B on C.CONTENTID = B.CONTENTID
inner join SPACES S on C.SPACEID = S.SPACEID
where
C.PREVVER is null
and C.CONTENT_STATUS = 'current'
and (C.CONTENTTYPE = 'PAGE' or C.CONTENTTYPE = 'BLOGPOST')
and B.BODY like '%YourStringHere%'
order by S.SPACENAME, C.TITLE

Suggest an answer

Log in or Sign up to answer
Community showcase
Posted Oct 24, 2018 in Confluence

Atlassian Research opportunity with Confluence templates

Do you use templates with Confluence? Take part in a remote 1-hr workshop. You'll receive USD $100 for your time!   We're looking for people to participate in a   remote 1-hr workshop...

1,547 views 25 14
Join discussion

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you