Managing Kite permissions

In this article, you'll learn about the concepts that guide Kite's access to files on your computer and how to control them.

Concepts

Allowed file extensions

Kite will only upload files that have a .py file extension. When JavaScript becomes available, Kite will also upload files that have a .js file extension.

Whitelisted directories

Kite will only upload files that reside inside a directory that you have explicitly whitelisted. Note that when you whitelist a directory, you are also implicitly whitelisting all the children subdirectories. You may whitelist any number of directories.

kiteignore

You can create a file with the name .kiteignore in any whitelisted directory. The contents of the kiteignore file specify which files in the whitelisted directory Kite should not upload to the cloud. kiteignore files use the same syntax and have the same semantics as gitignore files. You can learn about the specification here.

Note 1: The ! prefix to negate a pattern is not supported by kiteignore.
Note 2: Adding a previously uploaded file to kiteignore will effectively remove that file from the cloud.

Muted directories

If Kite detects that you're coding inside a directory that isn't yet whitelisted, it may ask you if you'd like to whitelist the current directory, typically through a native editor UI. If you would like Kite to stop suggesting to whitelist certain directories, you can add the individual files and directories to a “muted” list. Similar to when you whitelist a directory, when you mute a directory, you are also implicitly muting all the children subdirectories.

Note 3: Muting a directory will not prevent the files in that directory from being uploaded if the directory has also been whitelisted. Muting a directory only prevents Kite from suggesting that you whitelist it while coding.

Putting it all together: An example

Let's assume we have the following directory tree structure where the root project directory is whitelisted:

project/
├── .kiteignore
├── file.js
├── file.py
├── bar/
│   ├── bar.js
│   └── bar.py
├── baz/
│   ├── baz.js
│   ├── baz.py
│   └── secrets.py
└── foo/
    ├── .kiteignore
    ├── foo1.py
    ├── foo2.py
    └── secrets.py

The contents of the two kiteignore files are:

# project/.kiteigore
*/secrets.py
# project/foo/.kiteignore
foo2.py

In this case, the following files are not synced by Kite:

  • project/file.js, project/bar/bar.js, project/baz/baz.js because only files with a .py extension are uploaded
  • project/baz/secrets.py and project/foo/secrets.py because they are excluded by project/.kiteignore
  • project/foo/foo2.py because it's excluded by project/foo/.kiteignore

All other files will be uploaded by Kite to our remote servers. Note that the presence of any muted directories would not change what files get uploaded.

Changing your settings

Permissions

The Sidebar provides a UI to add or remove directories to a whitelist. To access this, click on the gear icon on the bottom right corner of the Sidebar.

Next, click on the "Permissions" tab.

From here, you can manage your whitelisted and muted directories. Clicking on a whitelisted directory will also show you which files in that directory will be uploaded.