📎How to install

Installing Ira as per your organization policy

You need to install the extension as an administrator (if you have workspace and domain setup ready), so that based on the browser you choose, your users won't have the privilege to remove / uninstall them.

If you dont have group policy setup here a few links that can help you achieve this

If you install the extension as a regular user, the user has the option to uninstall, disable, etc. which makes Ira fail. But as stated, Ira is awareness and doesn't guarantee protecting against malicious intent. If that's what your user is intending to do.

Prerequisite:

  1. Install Node

  2. An editor like VS Code

Step 1: Clone the project

Visit a directory to clone the project

git clone https://github.com/coauth/ira.git
cd ira
npm install

Step 2: Modify the policy.json

policy.json file is the configuration which tells Ira how should it control when browsing sites. More info on creating your policy can be found here.

Once the policy.json is ready, you need to host it on a server / website which is accessible when browsing.

Step 3: Configure Ira

go to src/config and open config.ts

const appConfig = {
    policyConfig: {
        internalUrl: "https://coauth.dev/ira/ira-policy.json",
        externalUrl: "https://coauth.dev/ira/ira-policy.json",
        policyFetchInternalInSeconds:1
    },
    toastTimeoutInSeconds:5,
    copyBlockedClipboardContent:"Copy operation from this website is disabled",
    cutBlockedClipboardContent:"Cut operation from this website is disabled",
    pasteBlockedContent:"Please refrain from using paste on this website."

};

Definition

  1. internalUrl URL which is accessible when user is logged into intranet

  2. externalUrl URL which is acceesible when user is logged in from internet You can keep the internal and external link same, if the URL is accessible from both internet and intranet.

  3. policyFetchInternalInSeconds Duration after which policy file should be refetched and updated by Ira.

  4. toastTimeoutInSeconds The duration after which the popup which should auto close when performing cut / copy / paste

  5. copyBlockedClipboardContent The clipboard content replaced when someone tries to copy

  6. cutBlockedClipboardContent The clipboard content replaced when someone tries to cut

  7. pasteBlockedContent The textbox content replaced when someone tries to paste

Ira stores the last fetched policy, in case internet connection is not available and applies the same.

Step 4: Build Ira

npm run build

This will create a dist folder in ira directory.

Zip all the files inside dist and load the extension in the browsers

All files should be in root of the zip and do not zip the dist folder itself.

Example: if you browse zip file, you should directly see the manifest.json and other files directly

Congratulations!!! You have build and deployed Ira

To Upload extension to store

To upload web extension to store (Safari, Chrome, Firefox , Edge) follow their respective documentation.

Last updated