Adds a confidentiality field to confluence.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src/main
.gitignore
LICENSE
README.md
pom.xml

README.md

confluence-confidentiality

This is a Confluence plugin that provides a confidentiality setting for each page.

A screenshot of the plugin in action

What's inside

Here are the SDK commands you'll use immediately:

  • atlas-run -- installs this plugin into the product and starts it on localhost
  • atlas-debug -- same as atlas-run, but allows a debugger to attach at port 5005
  • atlas-cli -- after atlas-run or atlas-debug, opens a Maven command line window: - 'pi' reinstalls the plugin into the running product instance
  • atlas-help -- prints description for all commands in the SDK

Full documentation is always available at:

https://developer.atlassian.com/display/DOCS/Introduction+to+the+Atlassian+Plugin+SDK

Whishlist

  • Improve style of confidentiality selector
  • Full i18n (currently all confidentiality strings are not translated on the client side)
  • Client code independent of possibleConfidentialities (so that the server entirely defines the set of possible confidentiality levels entirely)
  • Admin UI (add/remove/rename possible confidentiality levels and change default confidentiality level)
  • Optional per-space confidentiality set / default confidentiality
  • Editing of the confidentiality tied to the edit preferences of the page
  • Change of confidentiality only possible within the editor
  • Chosen confidentiality has impact on user roles (e.g. that certain roles can't see 'Confidential' pages or can only see 'Public' pages)

Test the plugin locally

Run Confluence locally in Fastmode™: atlas-run --jvmargs "-Xmx4g -XX:MaxMetaspaceSize=4g"

Compile the project: atlas-mvn package (the local Confluence will automatically reload the code)

Confluence locally runs on port 1990: http://localhost:1990/confluence/

Use admin:admin as login.

Core Files

  • confluence-confidentiality.js: All of the UI logic
  • confluence-confidentiality.properties: Translations (they somehow don't work client side)
  • confluence-confidentiality.soy: Template for everything in the confidentiality-selector
  • Confidentiality.kt: Object for server response
  • ConfidentialityResource.kt: Server-Side Logic
  • atlassian-plugin.xml: Resource Definition, Button Definition (change button icon etc.)

Important Documentation Resources

How to cut a release

  1. Make sure, you're on master.
  2. Change the version in pom.xml to X.Y.Z
  3. atlas-mvn clean package (You need to have Atlassian's tools installed)
  4. Test the package
  5. Run export VERSION=X.Y.Z; git add pom.xml && git commit -m "Version ${VERSION}" && git tag "v${VERSION}"
  6. Change the version in pom.xml to X.Y.z-SNAPSHOT, where z=Z+1
  7. Run git add pom.xml && git commit -m "Preparing for X.Y.z"
  8. Don't forget to git push --tags origin
  9. Upload the file target/confluence-confidentiality-X.Y.Z.jar to the Github release page.

About

This confluence plugin is currently maintained and funded by nine.

logo of the company 'nine'