This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description

Summary
=======

tsapp provides a tool, `tsapp`, for creating browser-based applications
for use with [TiddlySpace](http://tiddlyspace.com/) Such applications are
made of one or more html files along with one or more CSS and JavaScript
files for presenting and access the tiddler data that lives in TiddlySpace.

The combination can be very useful for rapid development of web applications
that need a persistent but simple data store with a clean, robust API.

Install
=======

tsapp is a Python 2 based tool. You will need a Python installation (2.5
and above). `pip` is used for installation. If you don't have pip you can
learn how to get it [here](http://www.pip-installer.org/)

```
pip install -U tsapp
```

Once installed the `tsapp` script should be on your `$PATH`.

Commands
========

`tsapp` provides a single script that takes multiple commands. Running
`tsapp help` will list the relevant commands. The following lists
available commands. Those commands which are not yet completed are marked
with `TBC`.

Note that the commands are designed to allow easy creation of aliases and
to otherwise be combined in a useful fashion using the shell.

init
----

`tsapp init <app name="">`

Create an app directory named whatever you give you for `<app name="">`.
Inside the directory will be a stub `index.html` file and an assets
directory. `index.html` is used as the primary access page of your
app. JavaScript, CSS, and other files go in assets.

serve
-----

`tsapp serve`

Run a local web server that will serve up your HTML file and other assets.
Any assets which are not found locally will be looked for at the target
TiddlySpace server (see configuration below). Paths to
`/bags/<somebag>/tiddlers/<sometiddler>` will first try to load
`assets/<sometiddler>` locally. If that is not found, then the original
path will be looked up on the TiddlySpace server.

The proxy server will always send `PUT`, `POST` and `DELETE` requests
to the target server.

The goal with this arrangement is to allow the local files to not have
to change when pushed to the target server for eventual hosting.

If `wsgi_server` is set in config the value is taken as a module
containing a function `start_server` which, when passed the config
will start a server.

push
----

`tsapp push <bag name=""> [<tiddler title="">]`

Push (via HTTP `PUT`) all the local assets to the target server, in the
bag named by `<bag name="">`. If the bag does not end with `_private` or
`_public`, then `_public` will be appended. The exception to this is if
`tiddlyweb_mode` is set to True in config.

Files that have a `.html` or `.tid` extension on the source file will
have the extension removed on the target.

If `<tiddler title="">` is provided, just that one tiddler will be pushed.

push_hard
---------

`tsapp push_hard <bag name=""> [<tiddler title="">]`

Push (via HTTP `PUT`) all the local assets to the target server, in the
bag named by `<bag name="">`. If the bag does not end with `_private` or
`_public`, then `_public` will be appended. The exception to this is if
`tiddlyweb_mode` is set to True in config.

This command is distinct from `push` in that the target file on the
server is deleted before the `PUT`.

Files that have a `.html` or `.tid` extension on the source file will
have the extension removed on the target.

If `<tiddler title="">` is provided, just that one tiddler will be pushed.

auth
----

`tsapp auth <username>`

Authenticate to the target_server as username and write the resulting
auth token to the local directory's configuration file.

delete
------

`tsapp delete <bag name=""> <tiddler title="">`

A convenience method for removing a tiddler that's ended up on the
server that is no longer needed and may be in the way.

Configuration
=============

tsapp looks for a `.tsapp` configuration file in the current user's `$HOME`
and in the current directory. `$HOME/.tsapp` overrides defaults and
`./.tsapp` overrides `$HOME/.tsapp`. There is no requirement for a configuration
file in the home directory if one is not desired. However, in order
for the `push` command to work, a `.tsapp` containing an `auth_token` must
be found. The `auth` command will create one.

Make sure that you do _not_ commit a .tsapp file that includes the
auth_token.

The fields are:

target_server
-------------

The URL (without trailing `/`) of the home tiddlyspace server. Defaults to
`http://tiddlyspace.com`.

local_host
----------

The hostname or IP to which to bind the local proxy. Default is `0.0.0.0`.

port
----

The port to which to bind the local proxy. Default is `8080`.

auth_token
----------

Auth secret for accessing private resources on the target server. No default.
Set it with the `auth` command or copy in the tiddlyweb_user cookie.

The auth_token property will also be set (only if it does not exist already)
when the server intercepts login requests to `/challenge/

If a POST to `/logout` is made and the auth_token exists, it will be removed
from the configuration in the local directory.

wsgi_sever
----------

The name of a python module containing a `start_server` method which,
when passed `config`, will start a web server hosting the proxy
application. Originally this was the server provided by the `wsgiref`
module in the Python stdlib, but this proved to be annoyingly slow.
Now `CherryPyWSGIServer` is used. An example of using the original
server [is availble](https://gist.github.com/cdent/5564147)

tiddlyweb_mode
--------------

If set to True, tsapp does not append `_public` or `_private` to a bag when
pushing assets.

This option will also ensure use of the default tiddlyweb authentication
challenger when using the `auth` command.

server_prefix
-------------

A URL prefix (without any `/`)
prepended to `/bags/<somebag>/tiddlers/<sometiddler>` that is used when
authenticating, looking up, pushing and deleting assets. This is limited
to just a single segment e.g. the prefix `web` would complete the path as:
`/web/bags/<somebag>/tiddlers/<sometiddler>`

Examples
========

* http://tsapp.tiddlyspace.com/ provides a simple docs interface,
created with `tsapp`.

Acknowledgements
================

Thanks to @bengillies for his `tsupload` script which provided some of the
motivation for creating this.
Release History

Release History

0.7.0

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.6.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.6.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.5.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.4.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.3.5

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.3.4

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.3.3

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.3.2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.3.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.3.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.2.2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.2.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.2.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.9

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.8

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.7

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.6

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.5

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.4

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.3

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
tsapp-0.7.0.tar.gz (11.2 kB) Copy SHA256 Checksum SHA256 Source Jun 15, 2013

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS HPE HPE Development Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting