From 8c4009f2b817a01f49dee63c4dd5e268c64f78c5 Mon Sep 17 00:00:00 2001 From: Sayan Nandan Date: Tue, 5 Dec 2023 16:52:01 +0530 Subject: [PATCH] Update docs and fix dpkg scripts [skip ci] --- .github/workflows/deploy-docs.yml | 34 --- .github/workflows/docker-image.yml | 2 +- ACKNOWLEDGEMENTS.txt | 18 ++ CONTRIBUTING.md | 9 +- README.md | 149 ++++++---- actiondoc.yml | 380 ------------------------- assets/logo.jpg | Bin 42591 -> 184696 bytes examples/config-files/dpkg/config.yaml | 14 + harness/src/linuxpkg.rs | 12 + pkg/common/skyd.service | 2 +- pkg/debian/postinst | 30 +- pkg/debian/postrm | 27 ++ pkg/debian/preinst | 29 +- pkg/debian/prerm | 6 + server/Cargo.toml | 13 +- server/src/engine/idx/mtchm/mod.rs | 2 +- 16 files changed, 228 insertions(+), 499 deletions(-) delete mode 100644 .github/workflows/deploy-docs.yml create mode 100644 ACKNOWLEDGEMENTS.txt delete mode 100644 actiondoc.yml mode change 100755 => 100644 assets/logo.jpg create mode 100644 examples/config-files/dpkg/config.yaml mode change 100644 => 100755 pkg/debian/postinst create mode 100755 pkg/debian/postrm create mode 100755 pkg/debian/prerm diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml deleted file mode 100644 index c2316934..00000000 --- a/.github/workflows/deploy-docs.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: Rebuild docs - -on: - push: - branches: - - next -env: - IS_ACTIONS_DOC: "false" - -jobs: - rebuild-docs: - name: Build new actiondoc - runs-on: ubuntu-latest - steps: - - name: Checkout source code - uses: actions/checkout@v2 - with: - fetch-depth: 2 - - - name: Setup environment - run: | - chmod +x ci/setvars.sh - ci/setvars.sh - - - name: Publish docs - env: - BOT_USER: ${{ secrets.BOT_INIT_USER }} - BOT_MAIL: ${{ secrets.BOT_INIT_MAIL }} - BOT_API: ${{ secrets.BOT_API_CALL }} - GIT_SHA: ${{ env.GITHUB_SHA }} - run: | - chmod +x ci/doc.sh - ci/doc.sh - if: env.IS_ACTIONS_DOC == 'true' diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index f74c86d3..8249413f 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -11,7 +11,7 @@ on: - v* env: - IMAGE_NAME: sdb + IMAGE_NAME: skytable BUILD: "false" jobs: diff --git a/ACKNOWLEDGEMENTS.txt b/ACKNOWLEDGEMENTS.txt new file mode 100644 index 00000000..200517e9 --- /dev/null +++ b/ACKNOWLEDGEMENTS.txt @@ -0,0 +1,18 @@ +---- +Notes for v0.8.0 +---- + +I'd like to thank a lot of the people that have very indirectly had some influence on Skytable's design. Here's a little list (in no +particular order): + +- First of all I'd like to thank Raymond F. Boyce and Donald D. Chamberlin for their work on SQL. While I'm not fortunate enough to have +any connection to them, a lot of their work have laid out guiding principles for my work. +- I'd also like to thank several people from the Rust community (listed in no particular order): + - Aaron Turon: Aaron's work on concurrency libraries have greatly helped in parts of "design thinking" + - Carl Lerche (@carllerche): For the immense amount of work Carl done on Tokio and related systems. + - Michael Vaner (@vorner): For their work on designing concurrency primitives. I'm a great admirer of Michael's work but + unfortunately haven't had the opportunity to directly talk. + - Amanieu d'Antras (@Amanieu): Amanieu's work on parking_lot and hashbrown have been eye openers for several things that I've designed + and implemented, both in and out of Skytable + +-- Sayan N. (Dec, 2023 ) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7dab9166..480bc4e4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -37,13 +37,6 @@ The main parts (ignorning CI scripts, stress test suite, test harness and custom - `cli`: REPL shell - `server`: database server - `sky-bench`: benchmark tool -- `sky-migrate`: migration tool - -### Jargon - -Each project has its own jargon — and so do we! - -- _actiondoc_ and _actions docs_ : This refers to the `actiondoc.yml` file, which is used by the Skytable documentation website for automatically building documentation for the actions ### Branches @@ -103,4 +96,4 @@ Testing is simple: just run this: make test ``` -> **NOTE**: Make sure port 2003 and 2004 are not used by any applications. Also, make sure your _own instance_ isn't running on any of these ports; if that is the case, you might end up losing data due to conflicting entity names! The test suite creates a `testsuite` keyspace and some tables within it to run all the tests. +> **NOTE**: Make sure port 2003 and 2004 are not used by any applications. Also, make sure your _own instance_ isn't running on any of these ports; if that is the case, you might end up losing data due to conflicting entity names! The test suite creates multiple spaces and some models within it to run all the tests. diff --git a/README.md b/README.md index 9bcd5571..095b6755 100644 --- a/README.md +++ b/README.md @@ -1,82 +1,125 @@ - -
- -

Skytable

Your next NoSQL database

+

+ +

+

+ Skytable — A modern database for building powerful experiences +

+

+ Performance, scalability and flexibility. Choose three. +

+

+

+GitHub release (with filter) GitHub Workflow Status (with event) Discord Docs Static Badge +

-![GitHub Workflow Status]() ![Development](https://img.shields.io/badge/development-regular-32CD32?style=flat-square) ![GitHub release (latest SemVer including pre-releases)](https://img.shields.io/github/v/release/skybasedb/skybase?include_prereleases&sort=semver&style=flat-square) -[![Docs](https://img.shields.io/badge/readthedocs-here-blueviolet?style=flat-square)](https://docs.skytable.io) [![Contribute Now](https://img.shields.io/badge/%F0%9F%8C%9Fcontribute-now-a94064)](https://ohsayan.github.io/skythanks) [![Discord](https://img.shields.io/badge/talk-on%20discord-7289DA?logo=discord&style=flat-square")](https://discord.gg/QptWFdx) +## 💡 What is Skytable? -
- +Skytable is a **modern NoSQL database** that focuses on **performance, flexibility and scalability**. Our goal is to deliver **a rock-solid database** that you can use as the foundation for your next application — **minus the gimmicks**. -## What is Skytable? +Skytable makes every attempt to **remove the gotchas from SQL-systems**. For example, nonempty `model`s and `space`s cannot be dropped and **BlueQL is designed to greatly deter SQL injection vulnerabilities** with a new **mandatory parameterization** design and several other **secure query language design principles**. -Skytable is a free and open-source NoSQL database that aims to provide flexible data modeling at -scale. For us simplicity, performance and flexibility are our guiding design principles. -We were previously known as TerrabaseDB or Skybase and are nicknamed Sky, SDB or STable by the community. +Every component in Skytable has been **engineered from the ground up** to meet our design goals. **Skytable uses BlueQLTM** which is our own **new in-house query language** designed from the ground up for a **clean, powerful, modern and secure querying experience** and is **generally more secure than SQL**. -Features like keyspaces, tables, data types, authn+authz, snapshots and more are ready for you to use while we're working on [several new data models and features](https://github.com/skytable/skytable/issues/203). Skytable's key/value store is performant, secure and ready for you to deploy. +Skytable works with **structured and semi-structured data**. We're currently working on supporting unstructured data. -## Getting started 🚀 +> **You can read more about Skytable's architecture, including information on the clustering and HA implementation that we're currently working on, and limitations [on this page](https://docs.skytable.io/architecture).** -1. Download a bundle for your platform from [here ⬇️ ](https://github.com/skytable/skytable/releases) -2. Unzip the bundle -3. Make the files executable (run `chmod +x skyd skysh` on \*nix systems) -4. First run `skyd` to start the database server and then run `skysh` to start the interactive shell -5. Run commands like: `SET foo bar` , `GET bar` , `UPDATE cat mitten` or `DEL proprietary` on `skysh`! +## 🎨 Features -You can learn more about installation [here](https://docs.skytable.io/getting-started) +- **Spaces, models and more**: For flexible data definition +- **Powerful querying with BlueQL**: A modern query language, designed for the 21st century +- **Rich data modeling**: Use `model`s to define data with complex types, collections and more +- **Performant, in and out of the box**: Heavily multithreaded and optimized +- **Secure, query in and response out**: BlueQL is designed to strongly deter query injection pathways +- **SQL minus the gotchas**: Ever done a `DROP TABLE users` and lost all data? **That won't happen in Skytable**. +- **Designed to scale by enforcing best practices**: If you're building with Skytable today, the practices you'll learn here will let you easily take on the job of building large scale systems -## Features +> Learn more about [Skytable's features here](https://docs.skytable.io). -- **Insanely fast**: Scale to millions of queries per second per node. See [benchmarks here](https://github.com/ohsayan/sky-benches). -- **Multiple keyspaces/tables**: Seamlessly integrates with actions to provide a SQL-like experience -- **Key/value store**: `GET` , `SET` , `UPDATE` and [all that stuff](https://docs.skytable.io/all-actions). With the `str` and `binstr` types. -- **Authn/Authz**: Simple and secure authentication/authorization -- **Volatile tables**: For all the caching you need -- **Snapshots**: Automated (and tunable) snapshots for stress-free backups -- **Secure**: Secure connections are built into Skytable with SSL/TLS -- **Multithreaded**: Designed to exploit all CPU cores -- **Resource friendly**: The database server doesn't need more than 1MB to run -- **Convenient**: Without the setup hassle and system-specific dependencies +## 🚀 Getting started -**🛣️ There's a lot more coming! View our [roadmap](https://github.com/skytable/skytable/issues/203)** +1. **Set up Skytable on your machine**: You'll need to download a bundled release file [from the releases page](https://github.com/skytable/skytable/releases). Unzip the files and you're ready to go. +2. Start the database server: `./skyd --auth-root-password ` with your choice of a password for the `root` account. The `root` account is just like a `root` account on Unix based systems that has control over everything. +3. Start the interactive client REPL: `./skysh` and then enter your password. +4. You're ready to run queries! -## Clients 🔌 +> **For a more detailed guide on installation and deployment, [follow the guide here.](https://docs.skytable.io/installation)** -The project currently maintains an official [Rust driver](https://github.com/skytable/client-rust) and we have plans -to support more languages along the way! -We also maintain a list of [community supported drivers here](https://github.com/skytable/skytable/wiki/Drivers). -If you want to use a different language, for now you'll just need to implement the simple and performant [Skyhash Protocol](https://docs.skytable.io/protocol/skyhash). +## ⚡ Using Skytable -## Community 👐 +Skytable has `SPACE`s instead of `DATABASE`s due to signficant operational differences (and because `SPACE`s store a lot more than tabular data). -A project which is powered by the community believes in the power of community! If you get stuck anywhere - here are your options! +**With the REPL started, follow this guide**: - - - - +1. Create a `space` and switch to it: + ```sql + CREATE SPACE myspace + USE myspace + ``` +2. Create a `model`: + ```sql + CREATE MODEL myspace.mymodel(username: string, password: string, notes: list { type: string }) + ``` + The rough representation for this in Rust would be: + ```rust + pub struct MyModel { + username: String, + password: Strin, + notes: Vec, + } + ``` +3. `INSERT` some data: + ```sql + INSERT INTO mymodel('sayan', 'pass123', []) + ``` +4. `UPDATE` some data: + ```sql + UPDATE mymodel SET notes += "my first note" WHERE username = 'sayan' + ``` +5. `SELECT` some data + ```sql + SELECT * FROM mymodel WHERE username = 'sayan' + ``` +6. Poke around! **And then make sure you [read the documentation learn BlueQL](https://docs.skytable.io/blueql/overview).** -## Platforms 💻 +> **For a complete guide on Skytable, it's architecture, BlueQL, queries and more we strongly recommend you to [read the documentation here.](https://docs.skytable.io)** +> +> While you're seeing strings and other values being used here, this is so because the REPL client smartly parameterizes queries behind the scenes. **BlueQL has mandatory parameterization**. (See below to see how the Rust client handles this) -![Linux supported](https://img.shields.io/badge/Linux%2032--bit%2F64--bit-Supported%20✓-%23228B22?logo=linux) ![macOS supported](https://img.shields.io/badge/macOS%20x86__64%2Farm64-supported%20✓-228B22?style=flat-square&logo=apple) ![Windows supported](https://img.shields.io/badge/Windows%2032--bit%2F64--bit-supported%20✓-228B22?style=flat-square&logo=windows) +## 🧩 Find a client driver -## Versioning +You need a client driver to use Skytable in your programs. Officially, we maintain a regularly updated [Rust client driver](https://github.com/skytable/client-rust) which is liberally license under the Apache-2.0 license so that you can use it anywhere. -This project strictly follows semver, however, since this project is currently in the development phase (0.x.y), the API may change unpredictably +Using the Rust client driver, it's very straightforward to run queries thanks to Rust's powerful type system and macros: -## Contributing +```rust +use skytable::{Config, query}; + +fn main() { + let mut db = Config::new_default("username", "password").connect().unwrap(); + let query = query!("select username, password from myspace.mymodel where username = ?", "sayan"); + let (username, password): (String, Vec) = db.query_parse(&query).unwrap(); + // do something with it! +} +``` + +> **You can find more information on client drivers on [this page](https://docs.skytable.io/libraries). If you want to help write a client driver for your language of choice, *we're here to support your work*. Please reach out to: hey@skytable.io or leave a message on our Discord server!** + +## 🙋 Getting help -[![Contribute Now](https://img.shields.io/badge/%F0%9F%8C%9Fcontribute-now-a94064?style=for-the-badge)](https://ohsayan.github.io/skythanks) +We exclusively use [Discord](https://discord.gg/QptWFdx) for most real-time communications — you can chat with developers, maintainers, and our amazing users! Outside that, we recommend that you use our [GitHub Discussions page](https://github.com/skytable/skytable/discussions) for any questions or open a new issue if you think you've found a bug. + +*We're here to help!* + +## Contributing -You are welcome to contribute to Skytable! Beginner friendly issues are marked with the [](https://github.com/skytable/skytable/labels/L-easy) label. Read the guide [here](./CONTRIBUTING.md). +Please read the [contributing guide here](./CONTRIBUTING.md). -## Contributors +## Acknowledgements -You can see a full list of contributors [here](https://ohsayan.github.io/skythanks) +Please read the [acknowledgements](./ACKNOWLEDGEMENTS.txt) document. ## License -This project is licensed under the [AGPL-3.0 License](./LICENSE). +Skytable is distributed under the [AGPL-3.0 License](./LICENSE). **You may not use Skytable's logo for other projects.** diff --git a/actiondoc.yml b/actiondoc.yml deleted file mode 100644 index f12a48be..00000000 --- a/actiondoc.yml +++ /dev/null @@ -1,380 +0,0 @@ -# -# Created on Thu Aug 27 2020 -# -# This file is a part of Skytable -# Skytable (formerly known as TerrabaseDB or Skybase) is a free and open-source -# NoSQL database written by Sayan Nandan ("the Author") with the -# vision to provide flexibility in data modelling without compromising -# on performance, queryability or scalability. -# -# Copyright (c) 2020, Sayan Nandan -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -# -# -# This file is used by Skytable's documentation website for automatically -# generating documentation for the actions. It will also be used by the Skytable -# server in the future - -# the docbuilder expects: -# 'name': str, 'complexity': str, 'accept': [str] -# 'return': [str], 'syntax': [str], 'desc': str - -global: - - name: HEYA - complexity: O(1) - accept: [AnyArray] - syntax: [HEYA, HEYA ] - desc: | - Either returns a "HEY!" or returns the provided argument as an `str` - return: [String] - - name: DBSIZE - complexity: O(1) - accept: [AnyArray] - syntax: [DBSIZE, DBSIZE ] - desc: Check the number of entries stored in the current table or in the provided entity - return: [Integer] - - name: MKSNAP - complexity: O(n) - accept: [AnyArray] - syntax: [MKSNAP, MKSNAP ] - desc: | - This action can be used to create a snapshot. Do note that this action **requires - snapshotting to be enabled on the server side**, before it can create snapshots. - If you want to create snapshots **without** snapshots being enabled on the server-side, - pass a second argument `` to specify a snapshot name and a snapshot will - be create in a folder called `rsnap` under your data directory. For more - information on snapshots, read [this document](/snapshots) - return: [Rcode 0, err-snapshot-disabled, err-snapshot-busy] - - name: FLUSHDB - complexity: O(n) - accept: [AnyArray] - syntax: [FLUSHDB, FLUSHDB ] - desc: Removes all entries stored in the current table or in the provided entity - return: [Rcode 0, Rcode 5] - - name: WHEREAMI - complexity: O(1) - accept: [AnyArray] - syntax: [WHEREAMI] - desc: | - Returns an array with either the name of the current keyspace as the first element or if a default table - is set, then it returns the keyspace name as the first element and the table name as the second element - return: [Non-null array] - - name: AUTH - desc: Change global authn/authz settings - subactions: - - name: LOGIN - complexity: O(1) - accept: [AnyArray] - syntax: [AUTH LOGIN ] - desc: Attempts to log in using the provided credentials - return: [Rcode 0, Rcode 10] - - name: CLAIM - complexity: O(1) - accept: [AnyArray] - syntax: [AUTH CLAIM ] - desc: Attempts to claim the root account using the origin key - return: [String, Rcode 10] - - name: LOGOUT - complexity: O(1) - accept: [AnyArray] - syntax: [AUTH LOGOUT] - desc: Attempts to log out the currently logged in user - return: [Rcode 0, Rcode 10] - - name: ADDUSER - complexity: O(1) - accept: [AnyArray] - syntax: [AUTH ADDUSER ] - desc: Attempts to create a new user with the provided username, returning the token - return: [String, Rcode 11] - - name: DELUSER - complexity: O(1) - accept: [AnyArray] - syntax: [AUTH DELUSER ] - desc: Attempts to delete the user with the provided username - return: [Rcode 0, Rcode 10, Rcode 11] - - name: RESTORE - complexity: O(1) - accept: [AnyArray] - syntax: [AUTH RESTORE , AUTH RESTORE ] - desc: | - Attempts to restore the password for the provided user. This will regenerate the token - and return the newly issued token. However, if you aren't a root account, that is, you - lost your root password, then you'll need to run `AUTH RESTORE root`. - return: [String, Rcode 10, Rcode 11] - - name: LISTUSER - complexity: O(1) - accept: [AnyArray] - syntax: [AUTH LISTUSER] - desc: | - Attempts to return a list of users for the current database instance - return: [Non-null array] - - name: WHOAMI - complexity: O(1) - accept: [AnyArray] - syntax: [AUTH WHOAMI] - desc: | - Returns a string with the AuthID of the currently logged in user or errors if the user - is not logged in - return: [String] - - name: SYS - desc: | - Get system information and metrics - subactions: - - name: INFO - complexity: O(1) - accept: [AnyArray] - syntax: [sys info ] - return: [String, Float] - desc: | - Returns static properties of the system, i.e properties that do not change during runtime. - The following properties are available: - - `version`: Returns the server version (String) - - `protocol`: Returns the protocol version string (String) - - `protover`: Returns the protocol version (float) - - name: METRIC - complexity: O(1) - accept: [AnyArray] - syntax: [sys metric ] - return: [String, Float] - desc: | - Returns dynamic properties of the system, i.e metrics are properties that can change during - runtime. The following metrics are available: - - `health`: Returns "good" or "critical" depending on the system state (String) - - `storage`: Returns bytes used for on-disk storage (uint64) - -keyvalue: - generic: - - name: DEL - complexity: O(n) - accept: [AnyArray] - syntax: [DEL ...] - desc: | - Delete 'n' keys from the current table. This will return the number of keys that were deleted - as an unsigned integer - return: [Integer, Rcode 5] - - name: EXISTS - complexity: O(n) - accept: [AnyArray] - syntax: [EXISTS ...] - desc: | - Check if 'n' keys exist in the current table. This will return the number of keys that exist - as an unsigned integer. - return: [Integer] - - name: LSKEYS - complexity: O(n) - accept: [AnyArray] - syntax: [LSKEYS , LSKEYS , LSKEYS ] - desc: | - Returns a flat string array of keys present in the current table or in the provided entity. - If no `` is given, then a maximum of 10 keys are returned. If a limit is specified, - then a maximum of `` keys are returned. The order of keys is meaningless. - return: [Typed Array] - string: - - name: GET - complexity: O(1) - accept: [AnyArray] - syntax: [GET ] - desc: Get the value of a key from the current table, if it exists - return: [Rcode 1, String, Binstr] - - name: MGET - complexity: O(n) - accept: [AnyArray] - syntax: [MGET ...] - desc: Get the value of 'n' keys from the current table, if they exist - return: [Typed Array] - - name: SET - complexity: O(1) - accept: [AnyArray] - syntax: [SET ] - desc: Set the value of a key in the current table, if it doesn't already exist - return: [Rcode 0, Rcode 2, Rcode 5] - - name: MSET - complexity: O(n) - accept: [AnyArray] - syntax: [MSET ...] - desc: | - Set the value of 'n' keys in the current table, if they don't already exist. This will - return the number of keys that were set as an unsigned integer. - return: [Integer, Rcode 5] - - name: UPDATE - complexity: O(1) - accept: [AnyArray] - syntax: [UPDATE ] - desc: Update the value of an existing key in the current table - return: [Rcode 0, Rcode 1, Rcode 5] - - name: MUPDATE - complexity: O(n) - accept: [AnyArray] - syntax: [MUPDATE ...] - desc: | - Update the value of 'n' keys in the current table, if they already exist. This will return - the number of keys that were updated as an unsigned integer. - return: [Integer, Rcode 5] - - name: SSET - complexity: O(n) - accept: [AnyArray] - syntax: [SSET ...] - desc: Set all keys to the given values only if all of them don't exist in the current table - return: [Rcode 0, Rcode 2, Rcode 5] - - name: SDEL - complexity: O(n) - accept: [AnyArray] - syntax: [SDEL ...] - desc: | - Delete all keys if all of the keys exist in the current table. Do note that if a single key doesn't - exist, then a `Nil` code is returned. - return: [Rcode 0, Rcode 1, Rcode 5] - - name: SUPDATE - complexity: O(n) - accept: [AnyArray] - syntax: [SUPDATE ...] - desc: | - Update all keys if all of the keys exist in the current table. Do note that if a single key doesn't - exist, then a `Nil` code is returned. - return: [Rcode 0, Rcode 1, Rcode 5] - - name: USET - complexity: O(n) - accept: [AnyArray] - syntax: [USET ...] - desc: SET all keys if they don't exist, or UPDATE them if they do exist. This operation performs `USET`s in the current table - return: [Integer, Rcode 5] - - name: KEYLEN - complexity: O(1) - accept: [AnyArray] - syntax: [KEYLEN ] - desc: Returns the length of the UTF-8 string, if it exists in the current table - return: [Integer, Rcode 1] - - name: POP - complexity: O(1) - accept: [AnyArray] - syntax: [POP ] - desc: | - Deletes and return the value of the provided key from the current table. - If the database is poisoned, this will return a server error. - return: [String, Binstr, Rcode 5] - - name: MPOP - complexity: O(n) - accept: [AnyArray] - syntax: [MPOP ...] - desc: | - Deletes and returns the values of the provided 'n' keys from the current table. - If the database is poisoned, this will return a server error - return: [Typed Array, Rcode 5] - lists: - - name: LGET - desc: | - `LGET` can be used to access the items in a list. Through the sub-actions provided by `lget`, - you can access multiple or individual elements in lists. - subactions: - - name: LGET - complexity: O(n) - accept: [AnyArray] - syntax: [LGET ] - desc: | - Returns all the values contained in a the provided list, if it exists in the current - table. - return: [Typed Array, Rcode 1] - - name: limit - complexity: O(n) - accept: [AnyArray] - syntax: [LGET limit ] - desc: Returns a maximum of `limit` values from the provided list, if it exists in the current table - return: [Typed Array, Rcode 1] - - name: len - complexity: O(1) - accept: [AnyArray] - syntax: [LGET len] - desc: Returns the length of the list - return: [Integer, Rcode 1] - - name: valueat - complexity: O(1) - accept: [AnyArray] - syntax: [LGET valueat ] - desc: Returns the element present at the provided `index`, if it exists in the given list. - return: [String, binstr, Rcode 1, bad-list-index] - - name: first - complexity: O(1) - accept: [AnyArray] - syntax: [LGET first] - desc: Returns the first element present in the list, if it exists. - return: [String, binstr, Rcode 1, list-is-empty] - - name: last - complexity: O(1) - accept: [AnyArray] - syntax: [LGET last] - desc: Returns the last element present in the list, if it exists. - return: [String, binstr, Rcode 1, list-is-empty] - - name: range - complexity: O(n) - accept: [AnyArray] - syntax: [LGET range , LGET range ] - desc: | - Returns items in the given range. If no value for `stop` is provided, all the elements from that - index are returned. If a value for `stop` is provided, then a subarray is returned - return: [Typed Array, Rcode 1, bad-list-index] - - name: LMOD - desc: | - `LMOD` can be used to mutate the elements in a list - subactions: - - name: push - complexity: O(1) - accept: [AnyArray] - syntax: [LMOD push ...] - desc: Appends the elements to the end of the provided list, if it exists. - return: [Rcode 0, Rcode 1, Rcode 5] - - name: insert - complexity: O(1) - accept: [AnyArray] - syntax: [LMOD insert ] - desc: | - Inserts the element to the provided index, if it is valid while shifting elements - to the right if required - return: [Rcode 0, Rcode 1, Rcode 5, bad-list-index] - - name: pop - complexity: O(1) - accept: [AnyArray] - syntax: [LMOD pop, LMOD pop ] - desc: | - Removes the element from the end of the list if no index is provided or from the provided - index while shifting elements to the right if required. - return: [String, Binstr, Rcode 1, Rcode 5, bad-list-index] - - name: remove - complexity: O(1) - accept: [AnyArray] - syntax: [LMOD remove ] - desc: | - Removes the element at the provided index from the list, shifting elements to the right - if required. - return: [Rcode 0, Rcode 1, Rcode 5, bad-list-index] - - name: clear - complexity: O(n) - accept: [AnyArray] - syntax: [LMOD clear] - desc: | - Removes all the elements present in the list - return: [Rcode 0, Rcode 1, Rcode 5] - - name: LSET - desc: | - `LSET` can be used to create empty lists or lists with the provided values. - subactions: - - name: LSET - complexity: O(n) - accept: [AnyArray] - syntax: [LSET , LSET ...] - desc: | - Creates a list with the provided values, or simply creates an empty list if it doesn't - already exist in the table. - return: [Rcode 0, Rcode 2, Rcode 5] diff --git a/assets/logo.jpg b/assets/logo.jpg old mode 100755 new mode 100644 index e0886a724c62cfd0106e2cb4305b371b6bf5a313..3bccc2497b61acec9c198885e8a74fb466d309fe GIT binary patch literal 184696 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 z -LdeX^He#(>fJmm>{PTjK$ol_ot!f&3i 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 diff --git a/examples/config-files/dpkg/config.yaml b/examples/config-files/dpkg/config.yaml new file mode 100644 index 00000000..44408e3c --- /dev/null +++ b/examples/config-files/dpkg/config.yaml @@ -0,0 +1,14 @@ +# this is the default configuration for the Debian package. Modify to use your own settings. +system: + mode: prod + rs_window: 300 + +auth: + plugin: pwd + # replace with your root password of choice + root_pass: rootpass + +endpoints: + insecure: + host: 127.0.0.1 + port: 2003 diff --git a/harness/src/linuxpkg.rs b/harness/src/linuxpkg.rs index 755afb41..1f8dbd44 100644 --- a/harness/src/linuxpkg.rs +++ b/harness/src/linuxpkg.rs @@ -76,6 +76,18 @@ pub fn create_linuxpkg(package_type: LinuxPackageType) -> HarnessResult<()> { LinuxPackageType::Deb => { // install cargo-deb util::handle_child("install cargo-deb", cmd!("cargo", "install", "cargo-deb"))?; + // make files executable + util::handle_child( + "make maintainer scripts executable", + cmd!( + "chmod", + "+x", + "pkg/debian/postinst", + "pkg/debian/preinst", + "pkg/debian/postrm", + "pkg/debian/prerm" + ), + )?; // assemble the command let mut build_args = vec!["cargo".into(), "deb".to_owned()]; if let Some(t) = util::get_var(util::VAR_TARGET) { diff --git a/pkg/common/skyd.service b/pkg/common/skyd.service index 3990c09f..8182822d 100644 --- a/pkg/common/skyd.service +++ b/pkg/common/skyd.service @@ -8,7 +8,7 @@ Type=simple Restart=always RestartSec=1 User=skytable -ExecStart=/usr/bin/skyd --noart +ExecStart=/usr/bin/skyd --config=/var/lib/skytable/config.yaml WorkingDirectory=/var/lib/skytable [Install] diff --git a/pkg/debian/postinst b/pkg/debian/postinst old mode 100644 new mode 100755 index 15592134..1bf534ea --- a/pkg/debian/postinst +++ b/pkg/debian/postinst @@ -1,15 +1,35 @@ #!/bin/sh -e +SKY_DIR=/var/lib/skytable systemctl daemon-reload -if [ $1 = "install" ]; then +echo "Doing '$1'" +if [ "$1" = "configure" ]; then + # Enable and start skyd on fresh install systemctl enable skyd -fi + systemctl start skyd + echo "Generating password and configuration" -if [ $1 = "upgrade" ]; then + if [ -f /var/lib/skytable/config.yaml ]; then + echo "Configuration already exists. Not updating configuration." + else + mv /var/lib/skytable/config.yaml.tmp /var/lib/skytable/config.yaml + # Generate and set password + if [ ! -f "$SKY_DIR/config.yaml" ]; then + echo "Error: The file $SKY_DIR/config.yaml does not exist." + exit 1 # Exit with an error code + fi + PASSWORD=$(tr -dc A-Za-z0-9 /dev/null; then + deluser --system skytable + fi + if getent group skytable > /dev/null; then + delgroup skytable + fi + echo "Removing the configuration file ..." + rm /var/lib/skytable/config.yaml + echo "Cleanup complete." + ;; + *) + # No action required for other cases (upgrade, failed-upgrade, etc.) + ;; +esac + +#DEBHELPER# diff --git a/pkg/debian/preinst b/pkg/debian/preinst index 158b1666..106070c2 100755 --- a/pkg/debian/preinst +++ b/pkg/debian/preinst @@ -2,19 +2,22 @@ SKY_DIR=/var/lib/skytable -# create the data directory -if [ ! -e $SKY_DIR ]; then - mkdir $SKY_DIR -elif [ ! -d $SKY_DIR ]; then - echo "ERROR: /var/lib/skytable exists but it is not a directory" 1>&2 - return 1 +# Create the data directory if it doesn't exist +if [ ! -e "$SKY_DIR" ]; then + mkdir -p "$SKY_DIR" + echo "Created directory $SKY_DIR" +elif [ ! -d "$SKY_DIR" ]; then + echo "ERROR: $SKY_DIR exists but it is not a directory" 1>&2 + exit 1 fi -if [ $1 = "install" ]; then - # add the `skytable` user - adduser --system --group skytable - # change ownership - chown skytable:skytable /var/lib/skytable +# On initial install, add the `skytable` user +if [ "$1" = "install" ]; then + echo "Creating user 'skytable'" + if ! getent passwd skytable > /dev/null; then + adduser --system --group --no-create-home skytable + fi + chown -R skytable:skytable "$SKY_DIR" + echo "Created user 'skytable'" fi - -#DEBHELPER# \ No newline at end of file +#DEBHELPER# diff --git a/pkg/debian/prerm b/pkg/debian/prerm new file mode 100755 index 00000000..8fe8f64d --- /dev/null +++ b/pkg/debian/prerm @@ -0,0 +1,6 @@ +#!/bin/sh -e + +echo "Stopping processes" +systemctl stop skyd +systemctl disable skyd +echo "Stopped processes" diff --git a/server/Cargo.toml b/server/Cargo.toml index 5462c0f3..8e6ed0f3 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -3,6 +3,8 @@ authors = ["Sayan Nandan "] edition = "2021" name = "skyd" version = "0.8.0" +description = "Skytable is a modern NoSQL database powered by BlueQL that aims to deliver performance, scalability and flexibility with data" +license = "AGPL-3.0" [dependencies] # internal deps @@ -61,19 +63,24 @@ priority = "optional" assets = [ [ "target/release/skyd", - "usr/bin/", + "/usr/bin/skyd", "755", ], [ "target/release/skysh", - "usr/bin/", + "/usr/bin/skysh", "755", ], [ "target/release/sky-bench", - "usr/bin/", + "/usr/bin/sky-bench", "755", ], + [ + "../examples/config-files/dpkg/config.yaml", + "/var/lib/skytable/config.yaml.tmp", + "644" + ], [ "../pkg/common/skyd.service", "/etc/systemd/system/skyd.service", diff --git a/server/src/engine/idx/mtchm/mod.rs b/server/src/engine/idx/mtchm/mod.rs index e8c03ef9..68023225 100644 --- a/server/src/engine/idx/mtchm/mod.rs +++ b/server/src/engine/idx/mtchm/mod.rs @@ -57,7 +57,7 @@ use { /* HACK(@ohsayan): Until https://github.com/rust-lang/rust/issues/76560 is stabilized which is likely to take a while, - we need to settle for trait objects + we need to settle for trait objects. */ #[cfg(debug_assertions)]