Skip to content
This repository has been archived by the owner on Jul 27, 2020. It is now read-only.

ninech/confluence-confidentiality

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 

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'