Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updates to copy on landing pages #84

Merged
merged 7 commits into from
Nov 1, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions website/docs/concepts/concepts.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ import { ConceptCardDetails } from '../../src/objects/conceptsObject.js';

# Concepts

This section covers common themes and questions that come up when running Fluree. For example, Identity Management and Decentralized Fluree.
Core concepts, architecture, and componentry of Fluree.

The Concepts section is not comprehensive and is intended to serve as a complement to the technical documentation found in:
This section goes into detail about how Fluree works and why it was built the way it is.

<CardGrid cardDetails={ConceptCardDetails} />
10 changes: 9 additions & 1 deletion website/docs/guides/guides.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,14 @@ import { GuideCardDetails } from '../../src/objects/guideObject.js';

# Guides

Utilize the guides section to learn about different fundamental areas of Fluree, how they work, and how to use them.
Walk-throughs and how-to's of key elements of working with Fluree.

These are some of our most viewed and requested guides:

<CardGrid cardDetails={GuideCardDetails} />

<hr />

More guides will be added as they are put together.

We welcome feedback, if you have any thoughts for the team, please visit the [Community page](/community) to choose how to get in touch or visit the repo for this site and raise an issue via the `Edit this page` button below.
18 changes: 17 additions & 1 deletion website/docs/guides/tools.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,23 @@

## Fluree on Docker {#docker}

You can use Fluree through Docker (see [Github repo](https://github.com/fluree/fluree-docker-example)).
You can use Fluree in Docker. Visit the [Docker Example repo on Github](https://github.com/fluree/ledger-docker-compose-example) to get started with an example.

Or issue:

```bash
docker pull fluree/ledger:latest
```

then

```bash
docker run -p 8090:8090 fluree/ledger
```

from a terminal to get started right away.

More about this subject coming to the developer's site soon...

## Fluree CLI {#fluree-cli}

Expand Down
49 changes: 35 additions & 14 deletions website/docs/overview/about.md
Original file line number Diff line number Diff line change
@@ -1,52 +1,73 @@
# About Fluree

## How Fluree Works {#how-fluree-works}
## What is Fluree {#what-is-fluree}

Fluree is an immutable graph database that, beyond performing typical modern database functions, emphasizes security, trust, provenance, privacy, and interoperability. Fluree is open source, under the AGPL license, and built on open standards. Fluree can be run centralized, distributed, or decentralized.
Fluree is an immutable graph database that, beyond performing typical modern database functions,
emphasizes security, trust, provenance, privacy, and interoperability. Fluree is open source, under
the AGPL license, and built on open standards. Fluree can be run centralized, distributed, or
decentralized.

### Built on Open Standards {#open-standards}

Fluree is an immutable RDF graph database built on Clojure and W3C standards. The Fluree system natively supports JSON and JSON-LD and can leverage/enforce any RDF ontology ( including vocabulary standards from schema.org or bring-your-own schemas).
Fluree is an immutable RDF graph database written in Clojure and built on W3C standards.
The Fluree system natively supports JSON and JSON-LD and can leverage or enforce any RDF
ontology (including vocabulary standards from schema.org or bring-your-own schemas).

### Scalable, Cloud-Native Architecture {#cloud-native-arch}

Fluree’s technology runs on a simple and lightweight java runtime for easy deployment across on-premises and cloud. The system is comprised of a ledger and a graph database.
Fluree’s technology runs on a simple and lightweight Java runtime for easy deployment across
on-premises and the cloud. The system is comprised of a ledger and a graph database both of
which are independently scalable to meet the needs of your organization.

### Data-Centric Ideology {#data-centric}

Fluree’s components and features are influenced by the “Data-Centric” ideology - the belief that data is recyclable, versatile, and valuable asset that should exist independently of a singular application and can empower a broad range of stakeholders.
Fluree’s components and features are influenced by the “Data-Centric” ideology - the belief that
data is a recyclable, versatile, and valuable asset that should exist independently of a singular
application and can empower a broad range of stakeholders.

### Immutable Ledger (State Management) {#immutable-ledger}

Fluree accepts and persists transactions in an immutable (append-only) ledger. The ledger records atomic updates in chronological order and secures them using cryptography - making all data, including metadata, timestamps, and identities related to data completely reproducible and verifiable. One can optionally decentralize the ledger system to a democratic network via RAFT or PBFT consensus mechanisms.
Fluree accepts and persists transactions in an immutable (append-only) ledger. The ledger records
atomic updates in chronological order and secures them using cryptography - making all data,
including metadata, timestamps, and identities related to data completely reproducible and
verifiable. One can optionally decentralize the ledger system to a democratic network via RAFT or
PBFT consensus mechanisms.

### Graph Database (Indexing and Querying) {#graph-db}

Fluree indexes ledger updates into a rich RDF graph database, capable of basic and advanced queries as well as semantic inferencing. Fluree exposes a variety of query interfaces: GraphQL, SPARQL, SQL, and JSON-based FlureeQL. Multi-modal data access allows data consumers to query data in the language of their choice and in the shape and format of their particular needs.
Fluree indexes ledger updates into a rich RDF graph database, capable of basic and advanced
queries as well as semantic inferencing. Fluree exposes a variety of query interfaces: JSON-based
FlureeQL, GraphQL, SPARQL, and SQL. Multi-modal data access allows data consumers to query
data in the language of their choice and in the shape and format of their particular needs.

### Smart Functions {#smart-functions}

The Fluree system consists of a cryptographically-secure ledger to handle state and a scalable semantic graph database to serve queries. Fluree uses SmartFunctions, smart and flexible embedded data policies similar to stored procedures, to enforce rules related to identity and access management as well as data shape and quality.
The Fluree system consists of a cryptographically-secure ledger to handle state and a scalable
semantic graph database to serve queries. Fluree uses SmartFunctions, smart and flexible
embedded data policies similar to stored procedures, to enforce rules related to identity and
access management as well as data shape and quality.

## More Resources {#more-resources}

There are other resources in this documentation website, such as:
There are other resources available on this site, such as:

- [Technical Overview](/concepts/technical_overview.md): An explanatory document about the main
components in Fluree.
- [Guides and Lessons](/guides/guides.mdx): Walkthroughs and How-to's of important areas of Fluree.
- [Reference](/reference/reference.mdx): Reference docs for our Javascript, NodeJS, FlureeWorker, and
other libraries.
- [Concepts](/concepts/concepts.mdx): Discussions of key concepts in Fluree.
- [Concepts](/concepts/concepts.mdx): Long-form content where delve into the key concepts and
architecture of Fluree.

To get started, work through the steps in this [to-do list generator](https://github.com/fluree/to-do-lists-generator)
repo for an introduction to integrating Fluree in a React application.
To get started by building a demo, visit our [to-do list generator](https://github.com/fluree/to-do-lists-generator).
This project will get you up and running by showing you how to integrate with Fluree via a
React application.

## Where Can I Get Help? {#get-help}

If you can't find the answers you are looking for in our documentation, please
let us know! We are always looking to improve the quality of support we provide.

You can [post to our Github Discussions](https://github.com/fluree/db/discussions) to ask questions
of the community, [join our Slack](https://launchpass.com/flureedb), or send an email to
[support@flur.ee](mailto:support@flur.ee).
and get involved with our community, [join our Slack](https://launchpass.com/flureedb), or send an
email to[support@flur.ee](mailto:support@flur.ee).
56 changes: 17 additions & 39 deletions website/docs/overview/fluree_basics.mdx
Original file line number Diff line number Diff line change
@@ -1,56 +1,38 @@
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import Tabs from "@theme/Tabs";
import TabItem from "@theme/TabItem";

# Fluree Basics

Once you've successfully downloaded Fluree, we recommend that you start with this
section using 'FlureeQL' as your language setting (in the top left).
This section shows you how to create a simple schema and populate your ledger with sample data. All of the examples in the Query and Transact sections of the Documentation use the schema located here, so we recommend that you populate a ledger with this sample data.

This section shows you how to create a simple schema and populate your ledger with
sample data. All of the examples in the Query and Transact sections of the Documentation
use the schema located here, so we recommend that you populate a ledger with this
sample data.
If you are using the [Admin UI](/overview/getting_started.mdx#admin-ui), you can issue all of the code on this page directly on the 'FlureeQL' page of your user interface. Make sure that you select 'Transact'.

If you are using the user interface, you can issue all of the code on this page
directly on the 'FlureeQL' page of your user interface. Make sure that you select
'Transact'.

If you are using the API, you can issue all these transactions to endpoints ending
with `/transact`.
If you are connecting to Fluree via an the HTTP API, you can issue all these transactions to the `/transact` endpoint.

To view an example application that uses Fluree for data management, visit the
[to-do list generator](https://github.com/fluree/to-do-lists-generator) repository.

## New Ledger {#new-ledger}

Make sure that you have a new ledger.
The first thing you will need to have is a ledger.

You can either create a new ledger through the Admin UI or via the
[HTTP API](/reference/http/examples.md#new-db).
You can either create a new ledger through Dashboard page the [Admin UI](/overview/getting_started.mdx#admin-ui) or via the
HTTP API using the [`/new-db`](/reference/http/examples.md#new-db) endpoint.

## Overview {#overview}

In Fluree, schema are comprised of collections and predicates. While Fluree is a
graph database, if you come from the relational world you can think of a
In Fluree, a schema is comprised of collections and predicates. While Fluree is a graph database, if you come from the relational world you can think of a
[collection](/overview/schema/collections.mdx) sort of like a database table.
Every time you want a new type of item in your ledger, you would create a new collection.
For example, collections in your ledger might be person, company, and city.
Every time you want a new type of item in your ledger, you would create a new collection. For example, collections in your ledger might be person, company, or city.

Every collection has [predicates](/overview/schema/predicates.mdx). Predicates are analogous
to relational database columns. The features of a collection are its predicates.
For example, the person collection might have the following predicates: person/firstName,
person/lastName, and person/age. The value of those predicates are called, objects
(read more about the [subject-predicate-object model](/concepts/technical_overview.md#subject-predicate-object-model)).
Every collection has [predicates](/overview/schema/predicates.mdx). Predicates are analogous to relational database columns. The features of a collection are its predicates.
For example, the person collection might have the following predicates: `person/firstName`, `person/lastName`, and `person/age`. The value of those predicates are called objects. You can read more about the [subject-predicate-object model](/concepts/technical_overview.md#subject-predicate-object-model) if you would like the get a deeper understanding of how RDF works in Fluree.

Note that many of the transactions in this section can be combined, but are separated
for clarity.
> Many of the transactions on this page can be combined, but are separated for clarity.

## Adding Collections {#adding-collections}

The below transaction adds five new collections: `person`, `chat`, `comment`, `artist`,
and `movie`. You can issue this transaction in your user interface. The syntax is
explained in the [Transact](/overview/transact/basics.md) section. For now, we recommend
you adding this basic schema and walking through the documentation section-by-section.
The below transaction adds five new collections: `person`, `chat`, `comment`, `artist`, and `movie`. You can issue this transaction in your user interface. The syntax is explained in the [Transact](/overview/transact/basics.md) section. For now, we recommend you add this basic schema and walk through the documentation section-by-section.

<Tabs
groupId="fluree-lang-options"
Expand Down Expand Up @@ -143,12 +125,9 @@ Transactions not supported in SPARQL

## Adding Predicates {#adding-predicates}

Schema predicates are similar to relational ledger columns. More information about
predicates can be found in the [Predicates](/overview/schema/predicates.mdx) section. For
now, we recommend you adding this basic schema and walking through the documentation
section-by-section without concerning yourself too much with the syntax.
Schema predicates are similar to relational ledger columns. More information about predicates can be found in the [Predicates](/overview/schema/predicates.mdx) section. For now, we recommend you add this basic schema and walk through the documentation section-by-section without concerning yourself too much with the syntax.

The below transaction creates the following predicates:
The transaction below creates the following predicates:

- `person/handle`
- `person/fullName`
Expand Down Expand Up @@ -481,8 +460,7 @@ Transactions not supported in SPARQL.

## Adding Sample Data {#adding-sample-data}

You can issue the below transaction to add some sample data into your ledger. The
below transaction adds four users, three chats, four comments, three artists, and
You can issue the below transaction to add some sample data into your ledger. This transaction adds four users, three chats, four comments, three artists, and
three movies.

<Tabs
Expand Down
88 changes: 3 additions & 85 deletions website/docs/reference/reference.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -9,90 +9,8 @@ import { RefCardDetails } from '../../src/objects/referenceObject.js';

# Reference

Utilize the reference section for Fluree configuration, endpoints, and libraries.
To be used while building with Fluree.

<CardGrid cardDetails={RefCardDetails} />

## Library Intro {#library-intro}

The following libraries are available for development in JavaScript-based applications.

- Javascript Library

> Using the JavaScript library, as an extension of our linear-scaling query peer service, makes trusted data readily accessible in the browser.

- Node.js Library

> Using the Node.js library, a node service can be configured as a fully-functioning query peer.

- FlureeWorker Library
> The FlureeWorker library, utilized as a browser service worker, provides trusted data locally to your browser application.

## Endpoints Intro {#intro}

There are two sets of endpoints in Fluree, depending on whether you are using the downloaded or the hosted version of Fluree.

- Downloaded Endpoints
- Hosted Endpoints

As you read through the API documentation, you can test the endpoints using the tool on the right-hand side of the page (or bottom on small screens). Below, you can learn how to use this toolbar for either the [hosted](#using-the-toolbar-hosted) or [downloaded](#using-the-toolbar-downloaded) versions.

Note that any changes you make to your ledger using this toolbar are actually issued to your ledgers. If you add data, that data will be added to your ledger, and if you delete data, that data will be deleted from your ledger, etc.

### Toolbar - Downloaded {#toolbar---downloaded}

Make sure that you have a local version of Fluree running.
These are reference materials for config when you are launching Fluree, Fluree APIs, publicly available libraries, and docs on running Fluree in a service worker.

Select "Downloaded" on the toolbar.

If you haven't changed your `fdb-api-port` or the IP address, your IP Address will be <http://localhost:8090>. Your network is the first part of your ledger name, before the `/`, i.e. `test/one` is in the `test` network with dbid `one`.

### Toolbar - Hosted {#toolbar---hosted}

Select "Hosted" on the top of the toolbar. In order to submit any queries or transactions, you'll need to make sure your password is set up, and then signin.

1. Set up your password.
- Make sure your username and password are set up. If you do not have a password, you can request to reset your password through the user interface.
- If the email supplied corresponds to a valid account, you will receive an email with a link to reset your password. Follow that link to set or reset your password.
2. Signin to get a token for the relevant account.

- If you know the name of the account you want to use to sign in, you can issue the following request:

```http
Action: POST
Endpoint: sign-in
Request: {
"user": ["_user/username", "YOUR EMAIL HERE"],
"password": "YOUR PASSWORD HERE",
"account": "YOUR ACCOUNT NAME HERE"
}
```

When you issue that request, if the username, password, and account name are correct, the response will be:

```json
{ "token": "SOME TOKEN HERE" }
```

Copy the token (only the token). You'll have to paste it into the "Token" section for the next query. You will need to paste the token in without quotation marks.

If you don't know the names of the account(s) associated with your username and password, you can issue:

```http
Action: POST
Endpoint: accounts
Request: {
"user": ["_user/username", "YOUR EMAIL HERE"],
"password": "YOUR PASSWORD HERE"
}
```

If you don't know the names of the ledger(s) asssociated with an account, you can issue:

```http
Account: f
Endpoint: dbs
Header: {"Authorization": "Bearer [TOKEN]"}
Request: { }
Action: POST or GET
```
<CardGrid cardDetails={RefCardDetails} />
2 changes: 1 addition & 1 deletion website/src/components/home_card/HomepageCardDetails.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ export const HomepageCardDetails: CardDetails[] = [
},
{
title: 'Analytical Queries',
description: 'Learn how to really leverage Fluree with Analytical Queries.',
description: 'Learn how to fully leverage Fluree with Analytical Queries.',
link: '/docs/guides/querying/query-advanced/5/',
Svg: require('../../../static/img/heroicons/search-circle.svg').default
},
Expand Down
Loading