Teknik v3 Release

Hello all!

Today is the day! I'm pleased to announce the release of Teknik v3.0. This release has quite a few changes, additions, and fixes I hope you will all enjoy.

Let's take a look!


New Authentication System

Our biggest overhaul is how Teknik's authentication system works. Teknik now can act as an identity provider (Both OAuth and OpenID Connect). This will allow better integration with 3rd party applications and scripts, as well make it super simple to integrate into additional services.

Due to this major change, the authentication method for accessing the API has changed and the previous Basic Auth method will no longer work. There will be updates soon for the existing tools to support the new authentication system. Until then, the API is open for unauthed users as well.

Expiring Uploads

This has been asked for quite awhile, and it's finally here! Just as with Pastes, you can now set your uploads to expire. This can either be set for your current session, or as a default setting. Uploads are also able to be modified after being uploaded to expire.

Content is able to be Deleted

There is a new page to view your Service Data, and as well as having it all in one place, you can now delete any previously made Upload, Paste, Shortened URL, or Vault.

Editable Pastes

Ever make a paste that you wanted to update, or found an error with? Now you can! As long as you make the paste while being logged in, you can edit the paste to your heart's content.

New Paste Syntax Engine

This includes adding line numbers, utilizing a javascript based library (prism) instead of the raw html being generated server side. With the update, some previous pastes may not have their syntax type match correctly. An easy fix is to copy the contents and make a new paste.

Better Performance

With the update to .NET Core, comes performance improvements in just the framework, but also there are many improvements in the backend code to streamline the request pipeline.

Cross Platform Hosting

One of the biggest draws for people who want to host an instance of Teknik is that it was only usable on a Windows machine. Now with .NET Core, it can be hosted on *nix and Mac OS as well. Each service is also decoupled from the main core code so that you can either make another mail/git interface to hook into, or easily host those services elsewhere.

This, combined with the new identity server, you can run your own hosted version of Teknik, keeping the files and data on your system, while using our authentication. This would allow any Teknik use to utilize your service, but you would be in control of the data.

Easier Contribution

All of the client side code has been moved to be outside of the .NET code. It's managed using npm and gulp, which should hopefully allow better understanding and contributions from those not familiar with .NET. The HTML templates are still within the core code, but are fairly simple to understand.

UI/UX Changes

We have cleaned up a good portion of the UI. From little things like adding icons and spacing to the nav dropdowns, to added button disabling when an action is taken.

Service Changes

With some of these new features, a couple changes to the services offered have been made.

  1. New accounts no longer will receive a free email address. All existing users can continue using their emails, this only affects new users.
  2. Invite Codes are no longer required for registration.
  3. Uploads for non-registered users have a set expiration of a day.
  4. Premium Accounts will now get an email address when upgraded.

Bug Fixes

There are many many bug fixes during the rewrite, as issues were found, and optimizations made.


What will break?

There will be some caveats with the change:

  • API Access Tokens will no longer work. You will need to update all of your scripts to utilize OAuth/OpenID Connect. This can be done by creating a client within your Teknik Developer Settings, and signing in through that via your script. We may bring back auth tokens in the future, but probably not initially.
  • Some pastes may not have the same syntax highlights as they initially were created with. The id's of the syntax languages will be changing, and not all will match the old ids.

Thank you all for your continued support, and I hope you will enjoy these new improvements!