HN user

devj

181 karma
Posts26
Comments47
View on HN
techcommunity.microsoft.com 7mo ago

JSON Structure: A JSON schema language you'll love

devj
4pts0
news.ycombinator.com 2y ago

Ask HN: Do we need query languages like SQL, GraphQL, etc. anymore?

devj
2pts3
jsonapi.org 3y ago

JSON:API v1.1 Released

devj
3pts1
news.ycombinator.com 4y ago

Ask HN: Which SaaS services expose their API over GraphQL?

devj
1pts1
whyember.com 4y ago

Why EmberJS?

devj
2pts0
news.ycombinator.com 4y ago

Ask HN: Is it better to use Rust for SDK's core?

devj
1pts0
spec.openapis.org 5y ago

OpenAPI v3.1 – The best thing to happen to OpenAPI since OpenAPI

devj
3pts1
news.ycombinator.com 5y ago

Ask HN: Code first ORM vs. Database first ORM

devj
1pts0
josephg.com 5y ago

Need for a standard Protocol for handling Change Feeds

devj
4pts0
news.ycombinator.com 5y ago

Ask HN: Why aren't plugin architecture adopted for web services?

devj
2pts0
twitter.com 6y ago

Feature Flag Debt

devj
3pts1
github.com 6y ago

Poetry – Dependency Management for Python – v1.0

devj
129pts73
techcrunch.com 6y ago

Zoho Catalyst: Serverless Suite for Business Apps

devj
1pts0
opensource.google.com 6y ago

Google's Common Expression Language for Expression Evaluation

devj
6pts1
github.com 7y ago

The CUE Data Constraint Language

devj
91pts67
news.ycombinator.com 7y ago

Ask HN: How did you implement Authorisation/Access Control for your SaaS product

devj
7pts1
aws.amazon.com 7y ago

AWS Well-Architected Tool

devj
3pts0
news.ycombinator.com 7y ago

Ask HN: Can CouchDB replication protocol be used at the application layer?

devj
4pts0
news.ycombinator.com 7y ago

Ask HN: PouchDB or Dexie or Localforage or OrbitJS or Lovefield or Gun?

devj
1pts0
news.ycombinator.com 8y ago

Ask HN: Which design system would be apt for an enterprise application?

devj
2pts0
medium.com 8y ago

The Stoic’s Cube for SaaS Product Development

devj
1pts0
news.ycombinator.com 8y ago

Ask HN: Is WebDav still relevant?

devj
80pts55
news.ycombinator.com 8y ago

Ask HN: How do I bill my client?

devj
4pts2
istio.io 8y ago

Istio – An open platform to connect, manage, and secure microservices

devj
2pts0
www.moqui.org 9y ago

Moqui Framework – Open Source ERP Software

devj
3pts0
news.ycombinator.com 9y ago

Ask HN: Any open source drag and drop app(web/mobile) builder?

devj
2pts1

And there's Amazon Ion too - https://amzn.github.io/ion-docs/

"Amazon Ion is a richly-typed, self-describing, hierarchical data serialization format offering interchangeable binary and text representations. The text format (a superset of JSON) is easy to read and author, supporting rapid prototyping. The binary representation is efficient to store, transmit, and skip-scan parse. The rich type system provides unambiguous semantics for long-term preservation of data which can survive multiple generations of software evolution."

OpenAPI 3.1 which was released recently, uses JSONSchema 2020-12 as the primary schema format. The incompatibilities has been completely resolved as of today.

OpenAPI 3.1 which was released recently, uses JSONSchema 2020-12 as the primary schema format. As a result, we can expect further consolidation of tooling, etc in the community.

## Changelog

The below changes are documented as part of the release notes.

### Additions

1. Introduced a new top-level field - `webhooks`. This allows describing out-of-band webhooks that are available as part of the API.

2. The Info Object has a new `summary` field.

3. The License Object now has a new `identifier` field for SPDX licenses.

4. Components Object now has a new entry pathItems, to allow for reusable Path Item Objects to be defined within a valid OpenAPI document.

5. Added the `jsonSchemaDialect` top-level field to allow the definition of a default $schema value for Schema Objects.

### Extended Functionality

1. Updated primitive types to be based on JSON Schema Specification Draft 2020-12. This now includes type null.

2. Lifted the restriction of allowing Request Body only in HTTP methods where the HTTP 1.1 specification RFC7231 has explicitly defined semantics for. While allowed in other methods, it is not recommended.

3. Added support to object type for spaceDelimited and pipeDelimited style values.

4. The Encoding Object now supports `style`, `explode` and `allowReserved` for multipart/form-data media type as well.

5. To enable better webhooks support, expressions in the Callback Object can now also reference Path Item Objects.

6. When using the Reference Object, `summary` and `description` fields can now be overridden.

7. The Discriminator Object can now be extended with Specification Extensions.

8. Added support for mutual TLS (mutualTLS) as a security scheme.

9. Used security requirements can now define an array of roles that are required for execution (and not only scopes for OAuth 2.0 security schemes).

### Changes

1. An OpenAPI Document now requires at least one of paths, components or webhooks to exist at the top level. While previous versions required paths, now a valid OpenAPI Document can describe only webhooks, or even only reusable components. Thus, an OpenAPI Document no longer necessarily describes an API.

2. Anywhere in the 3.0.0 Specification that had a type of Schema Object | Reference Object has been replaced to be Schema Object only. With the move to full JSON Schema support, $ref is inherently part of the Schema Object and has its own defined behavior.

3. Both `x-oai-` and `x-oas-` prefixes for Specification Extensions are now reserved to be defined by the OpenAPI Initiative.

4. `format` is now not validated by default.

### Breaking changes

1. The specification versioning no longer follows SemVer.

2. The nullable keyword has been removed from the Schema Object (null can be used as a type value).

3. `exclusiveMaximum` and `exclusiveMinimum` cannot accept boolean values (following JSON Schema).

4. Due to the compliance with JSON Schema, there is no longer interaction between `required` and `readOnly`/`writeOnly` in relation to requests and responses.

5. `format` (whether byte, binary, or base64) is no longer used to describe file payloads. As part of JSON Schema compliance, now contentEncoding and contentMediaType can be used for such specification.

6. Server Variable's `enum` now MUST not be empty (changed from SHOULD).

7. Server Variable's `default` now MUST exist in the enum values, if such values are defined (changed from SHOULD).

8. `responses` are no longer required to be defined under the Operation Object.

### Clarifications

1. Reworded the definition of OpenAPI Document to reflect that a document no longer must describe paths, but can describe either paths, webhooks, components or any combination of them.

2. Further updated Schema Object's description to take into account the latest draft, and the default use of https://spec.openapis.org/oas/3.1/dialect/base as the default OAS dialect.

3. Dropped the term RESTful APIs in favor of HTTP APIs.

4. Resolution of relative references has been redefined and clarified. Note there's a difference in resolution between Schema Object References and all others.

5. Modification of examples to improve them and provide context for new fields/objects.

6. Path parameter values cannot contain the unescaped characters /, ? or #.

7. Unified wording when values are URLs/URIs.

8. Reworded Path Item's $ref to take into account reference and component changes.

9. Minor text changes to improve consistency and readability.

10. Reworded "Schema Vocabularies" to "Schema dialects".

11. It is now clarified when path template expression may not have a corresponding path parameter.

12. A new section was added to address how to handle the `$schema` keyword (implicitly and explicitly).

Firefox Relay 5 years ago

Since Firefox has partnered with Amazon(SES) to filter spam, does it mean that Amazon can read our emails too?

Sorry.. Forgot to mention that.

Yes insertion/deletion is required and the frequency may be higher. The exact usecase is that group membership is dependent on some conditions. We schedule this check every 15 minutes and based on it, we are adding/deleting the members.

# Fast, portable, non-Turing complete expression evaluation

Common Expression Language (CEL) is a non-Turing complete language designed for simplicity, speed, safety, and portability. CEL is designed to be evaluated without a sandbox, making it ideal for use within latency critical applications.

## Features

  - Familiar C-like syntax common to C++, Go, Java, and TypeScript.

  - Gradual typing with first-class support for Protobuf and JSON types.

  - High performance evaluators in C++ and Go with a rich set of standard operators.
## How Google uses Common Expression Language

Google uses CEL as the expression component of IAM and Firebase security policies, as well as within Istio Mixer configs.

Thanks for your reply. Would be really helpful if you can share the following:

1. Size of the CloudKit cluster and the number of RecordLayer instances. A ratio would also be enough to get an approx. idea.

2. How metadata changes involving field data type are being handled?

3. How are relationships and therefore, foreign keys handled? Are any referential actions like cascading deletes supported?

Few doubts:

1. Any reason to write it in Java instead of C, C++, Rust, etc?

2. Any reason to use Protobuf instead of Flatbuffers, Avro, etc?

3. Can FoundationdDB be used with Apache Arrow?

Agreed. But if lot of developers are using REST for CRUD, then it definitely means that most of the developers desire a CRUD way of server interaction.

Any solution?