You can get the URL of Site page using [$FileRef]. This will be relative URL of page like:
I was not able to find how to get the Published date field. But you can get the Created and Modified date using [$Created] and [$Modified] respectively.
You can use below JSON code on any field. It will show the current column ...
that is only doable in sharepoint on premises, here is an explanation for programmatically setting up the document set default view on a list
=> If you want a workaround for sharepoint online, please use this powershell docset welcomepage view setter and follow this example